wxy 4 years ago
parent
commit
af9af7bf02

+ 55 - 11
src/views/client/addroute.vue

@@ -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']),

+ 0 - 1
src/views/client/addstyle.vue

@@ -133,7 +133,6 @@ export default {
         is_lf: [{ required: true, message: '请选择是否量份收费', trigger: 'blur' }],
         send_type: [{ required: true, message: '请选择发货方式', trigger: 'blur' }],
         computed_type: [{ required: true, message: '请选择计费方式', trigger: 'blur' }],
-        status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
       },
     };
   },

+ 17 - 2
src/views/client/project.vue

@@ -23,7 +23,13 @@
     </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">
+        <template #options="{item}">
+          <template v-if="item.model == 'taxes'">
+            <el-option v-for="(item, index) in rateList" :key="index" :label="item.label" :value="item.label"></el-option>
+          </template>
+        </template>
+      </data-form>
     </el-dialog>
   </div>
 </template>
@@ -31,6 +37,7 @@
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: project } = createNamespacedHelpers('project');
+const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
 
 export default {
   metaInfo() {
@@ -44,7 +51,7 @@ export default {
       fields: [
         { label: '合同', model: 'treaty', notable: true, noform: true },
         { label: '项目名称', model: 'name' },
-        { label: '税率', model: 'taxes' },
+        { label: '税率', model: 'taxes', type: 'select' },
         {
           label: '状态',
           model: 'status',
@@ -72,6 +79,8 @@ export default {
         taxes: [{ required: true, message: '请输入税率', trigger: 'blur' }],
         status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
       },
+      //税率列表
+      rateList: [],
     };
   },
   created() {
@@ -79,6 +88,7 @@ export default {
   },
   methods: {
     ...project(['query', 'create', 'update', 'delete']),
+    ...dictionary(['tree']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
       const res = await this.query({ skip, limit, ...info, treaty: this.id });
       if (this.$checkRes(res)) {
@@ -86,6 +96,11 @@ export default {
         this.$set(this, `list`, data);
         this.$set(this, `total`, total);
       }
+      //查其他收费项的税率
+      const res3 = await this.tree('sl');
+      if (res3) {
+        this.$set(this, `rateList`, res3);
+      }
     },
     //增加路线
     addroute({ data }) {

+ 1 - 0
src/views/order/transport/sign.vue

@@ -161,6 +161,7 @@ export default {
           return car.car_no;
         }
       } else if (type === '1') {
+        console.log(supplier);
         return supplier.client;
       } else {
         return supplier.car_no;