|
@@ -18,13 +18,29 @@
|
|
|
@addstyle="addstyle"
|
|
|
@delete="toDelete"
|
|
|
@query="search"
|
|
|
+ :toFormat="roleSelect"
|
|
|
></data-table>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-dialog :visible.sync="dialog" title="线路详情" @close="toClose" width="50%">
|
|
|
<!-- 物流里面的:data要换成v-model -->
|
|
|
- <data-form v-model="form" :fields="fields" @save="turnSave" :rules="rules"> </data-form>
|
|
|
+ <data-form v-model="form" :fields="fields" @save="turnSave" :rules="rules" @filterReturn="choose">
|
|
|
+ <template #options="{item}">
|
|
|
+ <template v-if="item.model == 's_p'">
|
|
|
+ <el-option v-for="(item, index) in routeList" :key="index" :label="item.label" :value="item.id"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model == 's_c'">
|
|
|
+ <el-option v-for="(item, index) in startCityList" :key="index" :label="item.label" :value="item.id"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model == 'e_p'">
|
|
|
+ <el-option v-for="(item, index) in routeList" :key="index" :label="item.label" :value="item.id"></el-option>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.model == 'e_c'">
|
|
|
+ <el-option v-for="(item, index) in endCityList" :key="index" :label="item.label" :value="item.id"></el-option>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </data-form>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -32,6 +48,7 @@
|
|
|
<script>
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
const { mapActions: route } = createNamespacedHelpers('route');
|
|
|
+const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
|
|
|
|
|
|
export default {
|
|
|
metaInfo() {
|
|
@@ -44,10 +61,10 @@ export default {
|
|
|
return {
|
|
|
fields: [
|
|
|
{ label: '所属项目', model: 'item', notable: true, noform: true },
|
|
|
- { label: '起始地省份', model: 's_p', filter: 'input' },
|
|
|
- { label: '起始地城市', model: 's_c', filter: 'input' },
|
|
|
- { label: '目的地省份', model: 'e_p', filter: 'input' },
|
|
|
- { label: '目的地城市', model: 'e_c', filter: 'input' },
|
|
|
+ { label: '起始地省份', model: 's_p', filter: 'input', type: 'select', filterReturn: true, format: true },
|
|
|
+ { label: '起始地城市', model: 's_c', filter: 'input', type: 'select', format: true },
|
|
|
+ { label: '目的地省份', model: 'e_p', filter: 'input', type: 'select', filterReturn: true, format: true },
|
|
|
+ { label: '目的地城市', model: 'e_c', filter: 'input', type: 'select', format: true },
|
|
|
{ label: '路线名称', model: 'name', filter: 'input' },
|
|
|
{ label: '起始站点', model: 'start' },
|
|
|
{ label: '目的站点', model: 'end' },
|
|
@@ -75,14 +92,14 @@ export default {
|
|
|
form: {},
|
|
|
rules: {
|
|
|
s_p: [{ required: true, message: '请输入起始地省份', trigger: 'blur' }],
|
|
|
- s_c: [{ required: true, message: '请输入起始地城市', trigger: 'blur' }],
|
|
|
e_p: [{ required: true, message: '请输入目的地省份', trigger: 'blur' }],
|
|
|
- e_c: [{ required: true, message: '请输入目的地城市', trigger: 'blur' }],
|
|
|
- name: [{ required: true, message: '请输入线路名称', trigger: 'blur' }],
|
|
|
- start: [{ required: true, message: '请输入起始站点', trigger: 'blur' }],
|
|
|
- end: [{ required: true, message: '请输入目的站点', trigger: 'blur' }],
|
|
|
- status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
|
|
|
},
|
|
|
+ //线路列表
|
|
|
+ routeList: [],
|
|
|
+ //起始地城市列表
|
|
|
+ startCityList: [],
|
|
|
+ //目的地城市列表
|
|
|
+ endCityList: [],
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -90,6 +107,7 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
...route(['query', 'create', 'update', 'delete']),
|
|
|
+ ...dictionary(['tree']),
|
|
|
async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
const res = await this.query({ skip, limit, ...info, item: this.id });
|
|
|
if (this.$checkRes(res)) {
|
|
@@ -97,6 +115,12 @@ export default {
|
|
|
this.$set(this, `list`, data);
|
|
|
this.$set(this, `total`, total);
|
|
|
}
|
|
|
+ //查线路列表
|
|
|
+ const res3 = await this.tree('xzqh');
|
|
|
+ // console.log(res3);
|
|
|
+ if (res3) {
|
|
|
+ this.$set(this, `routeList`, res3);
|
|
|
+ }
|
|
|
},
|
|
|
//关闭
|
|
|
toClose() {
|
|
@@ -137,6 +161,26 @@ export default {
|
|
|
addstyle({ data }) {
|
|
|
this.$router.push({ path: '/client/addstyle', query: { id: data.id } });
|
|
|
},
|
|
|
+ choose({ data, model }) {
|
|
|
+ let startCity = this.routeList.find(i => i.id === data);
|
|
|
+ if (model === 's_p') {
|
|
|
+ this.$set(this, `startCityList`, startCity.children);
|
|
|
+ } else {
|
|
|
+ this.$set(this, `endCityList`, startCity.children);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //过滤客户名
|
|
|
+ roleSelect({ model, value }) {
|
|
|
+ if (model == 's_p' || model == 'e_p') {
|
|
|
+ let arr = this.routeList.find(i => i.id === value);
|
|
|
+ if (arr) return arr.label;
|
|
|
+ } else if (model == 's_c' || model == 'e_c') {
|
|
|
+ for (let item of this.routeList) {
|
|
|
+ let arr = item.children.find(i => i.id === value);
|
|
|
+ if (arr) return arr.label;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState(['user']),
|