Browse Source

Merge branch 'master' of http://git.cc-lotus.info/news-zhwl/cms-zhwl

lrf402788946 4 years ago
parent
commit
cfca663c5a

+ 22 - 0
src/router/bill.js

@@ -0,0 +1,22 @@
+export default [
+  {
+    path: '/bill/client',
+    component: () => import('../views/bill/client.vue'),
+    meta: { title: '客户结算' },
+  },
+  {
+    path: '/bill/supplier',
+    component: () => import('../views/bill/supplier.vue'),
+    meta: { title: '供应商结算' },
+  },
+  {
+    path: '/bill/finished/client',
+    component: () => import('../views/bill/finished/client.vue'),
+    meta: { title: '客户已结算查询' },
+  },
+  {
+    path: '/bill/finished/supplier',
+    component: () => import('../views/bill/finished/supplier.vue'),
+    meta: { title: '供应商已结算查询' },
+  },
+];

+ 2 - 0
src/router/index.js

@@ -8,6 +8,7 @@ import car from './car';
 import personnel from './personnel';
 import client from './client';
 import supplier from './supplier';
+import bill from './bill';
 import Home from '@l/Home.vue';
 Vue.use(Router);
 const router = new Router({
@@ -36,6 +37,7 @@ const router = new Router({
         ...personnel,
         ...client,
         ...supplier,
+        ...bill,
       ],
     },
     {

+ 76 - 0
src/views/bill/client.vue

@@ -0,0 +1,76 @@
+<template>
+  <div id="client">
+    <el-row>
+      <el-col :span="24" class="info">
+        <data-table :fields="fields" :data="list" :total="total" :size="50" :step="10" @query="search" :select="true" @handleSelect="toSelect">
+          <template #options="{item}">
+            <template v-if="item.model == 'name'">
+              <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+            </template>
+          </template>
+          <template #filterEnd>
+            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何合同</el-button>
+            <el-button v-else type="primary" @click="toExport">导出选中合同</el-button>
+          </template>
+        </data-table>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'client',
+  props: {},
+  components: {},
+  data: function() {
+    return {
+      fields: [
+        { label: '客户', model: 'name', filter: 'select' },
+        { label: '订单号', model: 'num', filter: 'input' },
+        { label: '要求发货日期', model: 'time', filter: 'date' },
+        { label: '税后实收', model: 'after' },
+      ],
+      list: [
+        {
+          name: '张安',
+          num: '111',
+        },
+      ],
+      total: 0,
+      //选择的数据列表
+      selected: [],
+      //用户列表
+      nameList: [{ name: '名字一' }],
+    };
+  },
+  created() {},
+  methods: {
+    async search() {
+      console.log('查询');
+    },
+    //选中的数据
+    toSelect(data) {
+      console.log('选择');
+      this.selected = data;
+    },
+    //导出
+    toExport() {
+      console.log('导出');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-col-20 {
+  width: 1200px;
+}
+</style>

+ 76 - 0
src/views/bill/finished/client.vue

@@ -0,0 +1,76 @@
+<template>
+  <div id="client">
+    <el-row>
+      <el-col :span="24" class="info">
+        <data-table :fields="fields" :data="list" :total="total" :size="50" :step="10" @query="search" :select="true" @handleSelect="toSelect">
+          <template #options="{item}">
+            <template v-if="item.model == 'name'">
+              <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+            </template>
+          </template>
+          <template #filterEnd>
+            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何合同</el-button>
+            <el-button v-else type="primary" @click="toExport">导出选中合同</el-button>
+          </template>
+        </data-table>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'client',
+  props: {},
+  components: {},
+  data: function() {
+    return {
+      fields: [
+        { label: '客户', model: 'name', filter: 'select' },
+        { label: '订单号', model: 'num', filter: 'input' },
+        { label: '要求发货日期', model: 'time', filter: 'date' },
+        { label: '税后实收', model: 'after' },
+      ],
+      list: [
+        {
+          name: '张安',
+          num: '111',
+        },
+      ],
+      total: 0,
+      //选择的数据列表
+      selected: [],
+      //用户列表
+      nameList: [{ name: '名字一' }],
+    };
+  },
+  created() {},
+  methods: {
+    async search() {
+      console.log('查询');
+    },
+    //选中的数据
+    toSelect(data) {
+      console.log('选择');
+      this.selected = data;
+    },
+    //导出
+    toExport() {
+      console.log('导出');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-col-20 {
+  width: 1200px;
+}
+</style>

+ 85 - 0
src/views/bill/finished/supplier.vue

@@ -0,0 +1,85 @@
+<template>
+  <div id="supplier">
+    <el-row>
+      <el-col :span="24" class="info">
+        <data-table :fields="fields" :data="list" :total="total" :size="50" :step="10" @query="search" :opera="opera" @see="toSee" @delete="toDelete">
+          <template #options="{item}">
+            <template v-if="item.model == 'name'">
+              <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+            </template>
+          </template>
+        </data-table>
+      </el-col>
+    </el-row>
+    <el-dialog :visible.sync="dialog" title="供应商结算详情" @close="toClose" width="50%">
+      <data-form v-model="form" :fields="fields"> </data-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'supplier',
+  props: {},
+  components: {},
+  data: function() {
+    return {
+      dialog: false,
+      fields: [
+        { label: '供应商', model: 'name', filter: 'select' },
+        { label: '银行', model: 'yin' },
+        { label: '卡号', model: 'num' },
+        { label: '支付单位', model: 'price' },
+        { label: '运费合计(不含实收合计税)', model: 'cont' },
+      ],
+      list: [
+        {
+          name: '哈哈哈',
+          num: '1111111111',
+        },
+      ],
+      total: 0,
+      //用户列表
+      nameList: [{ name: '名字一' }],
+      opera: [
+        { label: '查看', method: 'see' },
+        { label: '删除', method: 'delete' },
+      ],
+      form: {},
+    };
+  },
+  created() {},
+  methods: {
+    async search() {
+      console.log('查询');
+    },
+    //查看
+    toSee({ data }) {
+      console.log(data);
+      this.$set(this, `form`, data);
+      this.dialog = true;
+    },
+    //删除
+    toDelete() {
+      console.log('删除');
+    },
+    //关闭
+    toClose() {
+      this.dialog = false;
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-col-4 {
+  width: 270px;
+}
+</style>

+ 85 - 0
src/views/bill/supplier.vue

@@ -0,0 +1,85 @@
+<template>
+  <div id="supplier">
+    <el-row>
+      <el-col :span="24" class="info">
+        <data-table :fields="fields" :data="list" :total="total" :size="50" :step="10" @query="search" :select="true" @handleSelect="toSelect">
+          <template #options="{item}">
+            <template v-if="item.model == 'name'">
+              <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+            </template>
+          </template>
+          <template #filterEnd>
+            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何合同</el-button>
+            <el-button v-else type="primary" @click="toExport">导出选中合同</el-button>
+            <el-button v-if="selected.length <= 0" type="primary" :disabled="true">未选择任何数据</el-button>
+            <el-button v-else type="primary" @click="add">生成单据</el-button>
+          </template>
+        </data-table>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'supplier',
+  props: {},
+  components: {},
+  data: function() {
+    return {
+      fields: [
+        { label: '发货日期', model: 'time' },
+        { label: '供应商', model: 'name', filter: 'select' },
+        { label: '订单号', model: 'num' },
+        { label: '单价(不含税)', model: 'price' },
+        { label: '运费合计(不含税)', model: 'cont' },
+        { label: '税率', model: 'rate' },
+        { label: '应付运费', model: 'freight' },
+      ],
+      list: [
+        {
+          name: '哈哈哈',
+          num: '3333',
+        },
+      ],
+      total: 0,
+      //选择的数据列表
+      selected: [],
+      //用户列表
+      nameList: [{ name: '名字一' }],
+    };
+  },
+  created() {},
+  methods: {
+    async search() {
+      console.log('查询');
+    },
+    //选中的数据
+    toSelect(data) {
+      console.log('选择');
+      this.selected = data;
+    },
+    //导出
+    toExport() {
+      console.log('导出');
+    },
+    //生成单据
+    add() {
+      console.log('生成单据');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-col-4 {
+  width: 270px;
+}
+</style>

+ 2 - 0
src/views/client/addroute.vue

@@ -70,6 +70,7 @@ export default {
       ],
       list: [
         {
+          project: '項目一',
           routename: '佛山-长春',
           startprovince: '广东省',
           startcity: '佛山市',
@@ -117,6 +118,7 @@ export default {
     //关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 9 - 2
src/views/client/addstyle.vue

@@ -23,6 +23,10 @@
             <el-radio v-model="radio1" label="禁用">禁用</el-radio>
             <el-radio v-model="radio1" label="启用">启用</el-radio>
           </template>
+          <template v-if="item.model == 'goods'">
+            <el-radio v-model="radio2" label="整车">整车</el-radio>
+            <el-radio v-model="radio2" label="零担">零担</el-radio>
+          </template>
         </template>
       </data-form>
     </el-dialog>
@@ -46,9 +50,9 @@ export default {
         // { label: '发货方式', model: 'goods', noform: true },
         // { label: '计算方式', model: 'computed', noform: true },
         // { label: '操作时间', model: 'time', noform: true },
-        { label: '发货方式', model: 'goods' },
         { label: '计算方式', model: 'computed' },
-        { label: '操作时间', model: 'time', type: 'datetime' },
+        // { label: '操作时间', model: 'time', type: 'datetime' },
+        { label: '发货方式', model: 'goods', type: 'radio' },
         { label: '是否量份收费', model: 'money', type: 'radio' },
         { label: '使用状态', model: 'state', type: 'radio' },
       ],
@@ -84,9 +88,11 @@ export default {
         price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
         money: [{ required: true, message: '请选择是否量份收费', trigger: 'blur' }],
         state: [{ required: true, message: '请选择状态', trigger: 'blur' }],
+        goods: [{ required: true, message: '发货方式', trigger: 'blur' }],
       },
       radio: '',
       radio1: '',
+      radio2: '',
     };
   },
   created() {},
@@ -94,6 +100,7 @@ export default {
     // 关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 9 - 2
src/views/client/contract.vue

@@ -36,7 +36,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 == 'name'">
+            <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+          </template>
+        </template>
+      </data-form>
     </el-dialog>
   </div>
 </template>
@@ -53,7 +59,7 @@ export default {
   data: function() {
     return {
       fields: [
-        { label: '客户', model: 'name', filter: 'select' },
+        { label: '客户', model: 'name', filter: 'select', type: 'select' },
         { label: '合同编号', model: 'num', filter: 'input' },
         { label: '甲方', model: 'partA' },
         { label: '乙方', model: 'partB' },
@@ -113,6 +119,7 @@ export default {
     //关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

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

@@ -72,6 +72,7 @@ export default {
     //关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 11 - 3
src/views/order/goods.vue

@@ -54,9 +54,9 @@
         </el-table-column>
       </el-table>
       <el-col :span="24" class="splite">
-        <el-button type="primary" size="mini">拆分</el-button>
+        <el-button type="primary" size="mini" @click="splite()">拆分</el-button>
       </el-col>
-      <el-table :data="tableData" style="width: 100%">
+      <el-table :data="part1Data" style="width: 100%">
         <el-table-column label="拆分订单">
           <el-table-column prop="splitnum" label="拆分单号"></el-table-column>
           <el-table-column prop="goods" label="货物"></el-table-column>
@@ -184,6 +184,8 @@ export default {
           volume: '8',
         },
       ],
+      //拆分订单列表
+      part1Data: [],
       //合同列表
       contractList: [{ name: '合同一' }, { name: '合同二' }],
       //项目列表
@@ -201,9 +203,15 @@ export default {
       console.log(data);
     },
     //拆分货物
-    split() {
+    split({ data }) {
+      console.log(data);
       this.dialog = true;
     },
+    splite() {
+      const data = this.tableData[0];
+      console.log(data);
+      console.log('拆分');
+    },
     handleChange(value) {
       console.log(value);
     },

+ 5 - 1
src/views/order/in.vue

@@ -103,4 +103,8 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+/deep/.el-col-20 {
+  width: 1322px;
+}
+</style>

+ 235 - 41
src/views/order/inDetail.vue

@@ -8,10 +8,10 @@
         </el-col>
         <el-col :span="24" class="rate">
           <el-col :span="24" class="tip"><span>关于长途运费:若是改成 他运且想根据设置的不同方式进行计算 需要重新生成订单,目前还无法处理这种情况</span></el-col>
-          <el-col :span="6" class="rateMoney">税前应收:{{ detailList1.cost1 }}</el-col>
-          <el-col :span="6" class="rateMoney">税后应收:{{ detailList1.cost2 }}</el-col>
-          <el-col :span="6" class="rateMoney">税前实收:{{ detailList1.cost3 }}</el-col>
-          <el-col :span="6" class="rateMoney">税后应收:{{ detailList1.cost4 }}</el-col>
+          <el-col :span="6" class="rateMoney">税前应收:{{ cost1 }}</el-col>
+          <el-col :span="6" class="rateMoney">税后应收:{{ cost2 }}</el-col>
+          <el-col :span="6" class="rateMoney">税前实收:{{ cost3 }}</el-col>
+          <el-col :span="6" class="rateMoney">税后应收:{{ cost4 }}</el-col>
         </el-col>
         <el-col :span="12" class="form">
           <el-form ref="form" :model="detailForm" label-width="90px">
@@ -41,23 +41,36 @@
         <el-col :span="17" class="list">
           <el-tabs v-model="activeName">
             <el-tab-pane label="货物列表" name="first">
-              <data-table :fields="detailFields" :data="detailList" :usePage="false">
-                <template #custom="{item}">
-                  <template v-if="item.model == 'rate'">
-                    <el-input-number v-model="item.rate" controls-position="right" @change="handleChange" :min="1" :max="10" size="mini"></el-input-number>
+              <el-table :data="detailList" border show-summary style="width: 100%">
+                <el-table-column prop="name" label="货物名称"> </el-table-column>
+                <el-table-column prop="way" label="计费方式">
+                  <template slot-scope="scope">
+                    <el-select v-model="scope.row.way" placeholder="请选择" @change="change">
+                      <el-option v-for="item in wayoptions" :key="item.name" :label="item.name" :value="item.name"> </el-option>
+                    </el-select>
                   </template>
-                  <template v-if="item.model == 'desc'">
-                    <el-input type="textarea" placeholder="请输入备注" v-model="item.desc"> </el-input>
+                </el-table-column>
+                <el-table-column prop="price" label="单价"> </el-table-column>
+                <el-table-column prop="rate" label="税率"> </el-table-column>
+                <el-table-column prop="num" label="数量"> </el-table-column>
+                <el-table-column prop="before" label="税前应收"> </el-table-column>
+                <el-table-column prop="after" label="税后应收"> </el-table-column>
+                <el-table-column prop="paidBefor" label="税前实收"> </el-table-column>
+                <el-table-column prop="paidAfter" label="税后实收"> </el-table-column>
+                <el-table-column prop="desc" label="备注">
+                  <template slot-scope="scope">
+                    <el-input type="textarea" placeholder="请输入备注" v-model="scope.row.desc"> </el-input>
                   </template>
-                </template> </data-table
-            ></el-tab-pane>
+                </el-table-column>
+              </el-table>
+            </el-tab-pane>
             <el-tab-pane label="其他收费项" name="second">
               <el-col :span="24" style="text-align:right;margin-bottom: 10px">
                 <el-button type="primary" @click="addGoods">添加收费项</el-button>
               </el-col>
               <el-col :span="24">
-                <el-table :data="listData" stripe border>
-                  <el-table-column align="center" label="收入项">
+                <el-table :data="listData" stripe border show-summary>
+                  <el-table-column align="center" label="收入项" prop="income">
                     <template slot-scope="scope">
                       <el-select v-model="scope.row.income" placeholder="请选择">
                         <el-option v-for="item in options" :key="item.name" :label="item.name" :value="item.name"> </el-option>
@@ -66,32 +79,56 @@
                   </el-table-column>
                   <el-table-column align="center" label="税率">
                     <template slot-scope="scope">
-                      <el-select v-model="scope.row.rate" placeholder="请选择">
+                      <el-select
+                        v-model="scope.row.rate"
+                        placeholder="请选择"
+                        @change="
+                          val => {
+                            selectChange(val, scope.$index);
+                          }
+                        "
+                      >
                         <el-option v-for="item in rateList" :key="item.name" :label="item.name" :value="item.name"> </el-option>
                       </el-select>
                     </template>
                   </el-table-column>
-                  <el-table-column align="center" label="税前应收">
+                  <el-table-column align="center" label="税前应收" prop="before">
                     <template slot-scope="scope">
-                      <el-input v-model="scope.row.before" placeholder="请输入税前应收"></el-input>
+                      <el-input
+                        v-model="scope.row.before"
+                        placeholder="请输入税前应收"
+                        @change="
+                          val => {
+                            inputChange(val, scope.$index);
+                          }
+                        "
+                      ></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column align="center" label="税后应收">
+                  <el-table-column align="center" label="税后应收" prop="after">
                     <template slot-scope="scope">
-                      <el-input v-model="scope.row.after" placeholder="请输入税前应收" disabled></el-input>
+                      <el-input v-model="scope.row.after" readonly></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column align="center" label="税前实收">
+                  <el-table-column align="center" label="税前实收" prop="paidBefor">
                     <template slot-scope="scope">
-                      <el-input v-model="scope.row.paidBefor" placeholder="请输入税前应收" disabled></el-input>
+                      <el-input
+                        v-model="scope.row.paidBefor"
+                        placeholder="请输入税前实收"
+                        @change="
+                          val => {
+                            otherChange(val, scope.$index);
+                          }
+                        "
+                      ></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column align="center" label="税后实收">
+                  <el-table-column align="center" label="税后实收" prop="paidAfter">
                     <template slot-scope="scope">
-                      <el-input v-model="scope.row.paidAfter" placeholder="请输入税前应收" disabled></el-input>
+                      <el-input v-model="scope.row.paidAfter" readonly></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column align="center" label="备注">
+                  <el-table-column align="center" label="备注" prop="desc">
                     <template slot-scope="scope">
                       <el-input type="textarea" v-model="scope.row.desc" placeholder="请输入备注"></el-input>
                     </template>
@@ -105,6 +142,11 @@
               </el-col>
             </el-tab-pane>
           </el-tabs>
+          <el-row>
+            <el-col :span="24" style="text-align:center;margin:40px 0px">
+              <el-button type="primary" size="mini" @click="save()">保存</el-button>
+            </el-col>
+          </el-row>
         </el-col>
       </el-col>
     </el-row>
@@ -122,13 +164,7 @@ export default {
   components: {},
   data: function() {
     return {
-      detailList1: {
-        cost1: '200',
-        cost2: '300',
-        cost3: '400',
-        cost4: '500',
-      },
-      detailForm: { name: '1111', number: '1234', contract: '合同一', route: '线路一', project: '项目一' },
+      detailForm: { name: '伟巴斯特(长春)车顶系统有限公司-北京天津线', number: '1234', contract: '合同一', route: '线路一', project: '项目一' },
       //合同列表
       contractList: [],
       //项目列表
@@ -149,35 +185,190 @@ export default {
       detailList: [
         {
           name: '1',
-          way: '123',
-          price: '111',
-          before: '33',
-          after: '3',
-          paidBefor: '40',
-          paidAfter: '50',
+          way: '整车-100',
+          price: '',
+          before: '',
+          after: '',
+          paidBefor: '',
+          paidAfter: '',
+          rate: 1.1,
+          num: 20,
         },
       ],
       activeName: 'first',
       //收入项列表
       options: [{ name: '保费' }, { name: '提送货费' }, { name: '运费' }],
       //税率列表
-      rateList: [{ name: '1' }, { name: '2' }],
+      rateList: [{ name: '1' }, { name: '1.1' }, { name: '2' }],
       listData: [],
+      wayoptions: [{ name: '整车-100' }, { name: '零担-10' }],
+      cost1: 0,
+      cost2: 0,
+      cost3: 0,
+      cost4: 0,
     };
   },
-  created() {},
+  created() {
+    this.change(this.detailList[0].way);
+    // this.all();
+    this.cost1 = this.detailList[0].before;
+    this.cost2 = this.detailList[0].after;
+    this.cost3 = this.detailList[0].paidBefor;
+    this.cost4 = this.detailList[0].paidAfter;
+  },
   methods: {
     handleChange(value) {
       console.log(value);
     },
+    //添加收費項目
     addGoods() {
       this.listData.push({});
     },
+    //刪除
     handleDelete(index, row) {
-      if (index > -1) {
-        this.listData.splice(index, 1);
+      if (index >= 0) {
+        this.cost1 = _.round(this.cost1 - Number(row.before), 2);
+        this.cost2 = _.round(this.cost2 - Number(row.after), 2);
+        this.cost3 = _.round(this.cost3 - Number(row.paidBefor), 2);
+        this.cost4 = _.round(this.cost4 - Number(row.paidAfter), 2);
+        if (index > -1) {
+          this.listData.splice(index, 1);
+        }
+      }
+    },
+    //选择计费方式
+    change(data) {
+      const arr = _.split(data, '-', 2);
+      this.detailList[0].price = Number(arr[arr.length - 1]);
+      if (arr.indexOf('整车') != -1) {
+        this.detailList[0].num = 1;
+      } else {
+        this.detailList[0].num = 9;
+      }
+      this.computRate(this.detailList[0].price, this.detailList[0].num);
+    },
+    //計算价格
+    computRate(price, num) {
+      const listData = this.detailList[0];
+      if (Number(listData.rate) != 0) {
+        listData.before = price * num;
+        listData.paidBefor = price * num;
+        listData.after = _.round(listData.rate * listData.before);
+        listData.paidAfter = _.round(listData.rate * listData.paidBefor);
+      } else {
+        listData.before = price * num;
+        listData.paidBefor = price * num;
+        listData.after = '0';
+        listData.paidAfter = '0';
+      }
+      this.cost1 = listData.before;
+      this.cost2 = listData.after;
+      this.cost3 = listData.paidBefor;
+      this.cost4 = listData.paidAfter;
+    },
+    //税前应收
+    inputChange(val, index) {
+      const rateList = this.listData[index];
+      if (rateList.rate && rateList.before) {
+        const after1 = _.round(Number(val) * rateList.rate, 2);
+        this.$set(rateList, `after`, after1);
+        this.$set(rateList, `paidBefor`, Number(val));
+        this.$set(rateList, `paidAfter`, after1);
+        //当只建立一条数据的时候
+        if (this.listData.length == 1) {
+          if (this.cost1 == this.detailList[0].before) {
+            console.log('jianli1');
+            this.cost1 += Number(rateList.before);
+            this.cost2 += Number(rateList.after);
+            this.cost3 += Number(rateList.paidBefor);
+            this.cost4 += Number(rateList.paidAfter);
+          } else {
+            console.log('不是一地辞了');
+            this.cost1 = _.round(this.detailList[0].before + Number(rateList.before), 2);
+            this.cost2 = _.round(this.detailList[0].after + rateList.after, 2);
+            this.cost3 = _.round(this.detailList[0].paidBefor + rateList.paidBefor, 2);
+            this.cost4 = _.round(this.detailList[0].paidAfter + rateList.paidAfter, 2);
+          }
+        } else {
+          //建立多条数据的时候
+          let num1 = this.detailList[0].before;
+          let num2 = this.detailList[0].after;
+          let num3 = this.detailList[0].paidBefor;
+          let num4 = this.detailList[0].paidAfter;
+          //判断是否有建立数据但是没有填写内容的
+          for (let item of this.listData) {
+            // let arr = Object.keys(item);
+            if (item.before) {
+              num1 = _.round(num1 + Number(item.before), 2);
+              num2 = _.round(num2 + Number(item.after), 2);
+              num3 = _.round(num3 + Number(item.paidBefor), 2);
+              num4 = _.round(num4 + Number(item.paidAfter), 2);
+            } else {
+              // item.before = '';
+              // item.after = '';
+              // item.paidBefor = '';
+              // item.paidAfter = '';
+            }
+          }
+          this.cost1 = num1;
+          this.cost2 = num2;
+          this.cost3 = num3;
+          this.cost4 = num4;
+        }
+      }
+    },
+    //税前实收
+    otherChange(val, index) {
+      const rateList = this.listData[index];
+      if (rateList.rate != 0) {
+        const paidAfter1 = _.round(Number(val) * rateList.rate, 2);
+        this.$set(rateList, `paidAfter`, paidAfter1);
+        if (this.listData.length == 1) {
+          this.cost3 = _.round(this.detailList[0].paidBefor + Number(rateList.paidBefor), 2);
+          this.cost4 = _.round(this.detailList[0].paidAfter + rateList.paidAfter, 2);
+        } else {
+          //建立多条数据的时候
+          let num3 = this.detailList[0].paidBefor;
+          let num4 = this.detailList[0].paidAfter;
+          for (let item of this.listData) {
+            num3 = _.round(num3 + Number(item.paidBefor), 2);
+            num4 = _.round(num4 + Number(item.paidAfter), 2);
+          }
+          this.cost3 = num3;
+          this.cost4 = num4;
+        }
       }
     },
+    //选择税率
+    selectChange(val, index) {
+      const rateList = this.listData[index];
+      if (rateList.rate && rateList.before) {
+        const data = _.round(Number(val) * rateList.before, 2);
+        this.$set(rateList, `after`, data);
+        const data1 = _.round(Number(val) * rateList.paidBefor, 2);
+        this.$set(rateList, `paidAfter`, data1);
+        if (this.listData.length == 1) {
+          this.cost2 = rateList.after + this.detailList[0].after;
+          this.cost4 = rateList.paidAfter + this.detailList[0].paidAfter;
+        } else {
+          //建立多条数据的时候
+          let num2 = this.detailList[0].after;
+          let num4 = this.detailList[0].paidAfter;
+          for (let item of this.listData) {
+            console.log(item);
+            num2 = _.round(num2 + Number(item.after), 2);
+            num4 = _.round(num4 + Number(item.paidAfter), 2);
+          }
+          this.cost2 = num2;
+          this.cost4 = num4;
+        }
+      }
+    },
+    //保存
+    save() {
+      console.log('保存');
+      console.log(this.listData);
+    },
   },
   computed: {
     ...mapState(['user']),
@@ -228,4 +419,7 @@ export default {
 /deep/.el-input--mini {
   width: 81px;
 }
+/deep/.el-table .cell {
+  text-align: center;
+}
 </style>

+ 215 - 95
src/views/order/out.vue

@@ -24,93 +24,105 @@
               </template>
             </data-table>
             <el-col :span="24" class="detail" v-else>
-              <el-col :span="24" class="top">
-                <el-button size="mini" type="primary" @click="$router.go(-1)">返回</el-button>
-                <span>支出详情</span>
-              </el-col>
-              <el-col :span="24" class="head">
-                <el-col :span="12" style="text-align:center">流水账号:xxxx</el-col>
-                <el-col :span="12" style="text-align:left">订单号:xxxx</el-col>
-              </el-col>
-              <el-card class="box-card">
-                <div slot="header" class="clearfix">
-                  <span>货物列表</span>
-                </div>
-                <div class="text item">
-                  <data-table :fields="detailFields" :data="detailList" :usePage="false"> </data-table>
-                </div>
-                <el-divider></el-divider>
-              </el-card>
-              <el-col :span="24" class="rate">
-                <el-col :span="6" class="rateMoney">税前应收:{{ detailList1.cost1 }}</el-col>
-                <el-col :span="6" class="rateMoney">税后应收:{{ detailList1.cost2 }}</el-col>
-                <el-col :span="6" class="rateMoney">税前实收:{{ detailList1.cost3 }}</el-col>
-                <el-col :span="6" class="rateMoney">税后应收:{{ detailList1.cost4 }}</el-col>
-                <el-col :span="24" class="tip"
-                  ><span>关于长途运费:若是改成 他运且想根据设置的不同方式进行计算 需要重新生成订单,目前还无法处理这种情况</span></el-col
-                >
-              </el-col>
-              <!-- <div style="margin-bottom: 20px; text-align:right">
-                <el-button size="small" @click="addTab(editableTabsValue)">
+              <el-row>
+                <el-col :span="24" class="top">
+                  <el-button size="mini" type="primary" @click="back()">返回</el-button>
+                  <span>支出详情</span>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="24" class="head">
+                  <el-col :span="12" style="text-align:center">流水账号:{{ detailList[0].current }}</el-col>
+                  <el-col :span="12" style="text-align:left">订单号:{{ detailList[0].ordernumber }}</el-col>
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-card class="box-card">
+                  <div slot="header" class="clearfix">
+                    <span>货物列表</span>
+                  </div>
+                  <div class="text item">
+                    <data-table :fields="detailFields" :data="detailList" :usePage="false"> </data-table>
+                  </div>
+                  <el-divider></el-divider>
+                </el-card>
+              </el-row>
+              <el-row>
+                <el-col :span="24" class="rate">
+                  <el-col :span="6" class="rateMoney">税前应收:{{ cost1 }}</el-col>
+                  <el-col :span="6" class="rateMoney">税后应收:{{ cost2 }}</el-col>
+                  <el-col :span="6" class="rateMoney">税前实收:{{ cost3 }}</el-col>
+                  <el-col :span="6" class="rateMoney">税后应收:{{ cost4 }}</el-col>
+                  <el-col :span="24" class="tip"
+                    ><span>关于长途运费:若是改成 他运且想根据设置的不同方式进行计算 需要重新生成订单,目前还无法处理这种情况</span></el-col
+                  >
+                </el-col>
+              </el-row>
+              <el-row>
+                <el-button size="small" @click="addTab(editableTabsValue)" style="margin:10px 0px">
                   + 添加支出
                 </el-button>
-              </div> -->
-              <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
-                <el-col :span="24" class="btn">
-                  <el-button size="small" @click="addTab(index)">
-                    + 添加支出
-                  </el-button>
-                </el-col>
-                <el-tab-pane v-for="(item, index) in editableTabs" :key="index" :label="`支出${index + 1}`" :name="`${index}`">
-                  <el-col :span="24">
-                    <el-form ref="form" label-width="90px" :inline="true">
-                      <el-col :span="6">
+                <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
+                  <el-tab-pane v-for="(item, index) in editableTabs" :key="index" :label="`支出${index + 1}`" :name="`${index + 1}`">
+                    <el-col :span="24">
+                      <el-form ref="form" label-width="90px" :inline="true">
                         <el-form-item label="支出项">
                           <el-select v-model="item.cost" placeholder="请选择支出项">
                             <el-option v-for="(item, index) in costList" :key="index" :label="item.name" :value="item.name"></el-option>
                           </el-select>
                         </el-form-item>
-                      </el-col>
-                      <el-form-item label="供应商方式">
-                        <el-radio-group v-model="item.supplierway">
-                          <el-radio label="自运"></el-radio>
-                          <el-radio label="他运"></el-radio>
-                        </el-radio-group>
-                      </el-form-item>
-                      <el-form-item label="供应商">
-                        <el-select v-model="item.supplier" placeholder="请选择供应商">
-                          <el-option v-for="(item, index) in supplierList" :key="index" :label="item.name" :value="item.name"></el-option>
-                        </el-select>
-                      </el-form-item>
-                      <el-form-item label="合同">
-                        <el-select v-model="item.supplier" placeholder="请选择合同">
-                          <el-option v-for="(item, index) in contractList" :key="index" :label="item.name" :value="item.name"></el-option>
-                        </el-select>
-                      </el-form-item>
-                      <el-form-item label="税率">
-                        <el-select v-model="item.rate" placeholder="请选择合同">
-                          <el-option v-for="(item, index) in rateList" :key="index" :label="item.name" :value="item.name"></el-option>
-                        </el-select>
-                      </el-form-item>
-                      <el-form-item label="税前应付">
-                        <el-input v-model="detailList1.cost1"></el-input>
-                      </el-form-item>
-                      <el-form-item label="税后应付">
-                        <el-input v-model="detailList1.cost2"></el-input>
-                      </el-form-item>
-                      <el-form-item label="税前实付">
-                        <el-input v-model="detailList1.cost3"></el-input>
-                      </el-form-item>
-                      <el-form-item label="税前实付">
-                        <el-input v-model="detailList1.cost4"></el-input>
-                      </el-form-item>
-                      <el-form-item label="备注">
-                        <el-input type="textarea" v-model="item.desc"></el-input>
-                      </el-form-item>
-                    </el-form>
+
+                        <el-form-item label="供应商方式">
+                          <el-radio-group v-model="item.supplierway">
+                            <el-radio label="自运"></el-radio>
+                            <el-radio label="他运"></el-radio>
+                          </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="车辆">
+                          <el-select v-model="item.supplier" placeholder="请选择车辆">
+                            <el-option v-for="(item, index) in carList" :key="index" :label="item.name" :value="item.name"></el-option>
+                          </el-select>
+                        </el-form-item>
+                        <el-form-item label="税率">
+                          <el-select
+                            v-model="item.rate"
+                            placeholder="请选择税率"
+                            @change="
+                              val => {
+                                selectChange(val, index);
+                              }
+                            "
+                          >
+                            <el-option v-for="(item, index) in rateList" :key="index" :label="item.name" :value="item.name"></el-option>
+                          </el-select>
+                        </el-form-item>
+                        <el-form-item label="税前应付">
+                          <el-input v-model="item.cost1" @change="change(index)"></el-input>
+                        </el-form-item>
+                        <el-form-item label="税后应付">
+                          <el-input v-model="item.cost2" readonly></el-input>
+                        </el-form-item>
+                        <el-form-item label="税前实付">
+                          <el-input v-model="item.cost3" @change="toChange(index)"></el-input>
+                        </el-form-item>
+                        <el-form-item label="税后实付">
+                          <el-input v-model="item.cost4" readonly></el-input>
+                        </el-form-item>
+                        <el-form-item label="备注">
+                          <el-input type="textarea" v-model="item.desc"></el-input>
+                        </el-form-item>
+                      </el-form>
+                    </el-col>
+                  </el-tab-pane>
+                </el-tabs>
+                <el-row>
+                  <el-col :span="24" style="text-align:center">
+                    <el-button type="primary" size="mini" @click="save(editableTabs)" style="margin:10px 0px">
+                      保存
+                    </el-button>
                   </el-col>
-                </el-tab-pane>
-              </el-tabs>
+                </el-row>
+              </el-row>
             </el-col>
           </el-col>
         </el-col>
@@ -121,6 +133,7 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const _ = require('lodash');
 export default {
   metaInfo() {
     return { title: this.$route.meta.title };
@@ -130,7 +143,7 @@ export default {
   components: {},
   data: function() {
     return {
-      dialog: true,
+      dialog: false,
       fields: [
         { label: '订单号', model: 'num', filter: 'input' },
         { label: '客户', model: 'name', filter: 'select' },
@@ -148,6 +161,13 @@ export default {
           money: 100,
           way: '银行转账',
         },
+        {
+          id: '2',
+          name: 'xxx有限公司',
+          num: 'AW-YS-ZF-2018-005',
+          money: 200,
+          way: '银行转账',
+        },
       ],
       total: 0,
       opera: [{ label: '查看', method: 'see' }],
@@ -166,6 +186,8 @@ export default {
         { label: '数量', model: 'number' },
         { label: '重量(t)', model: 'weight' },
         { label: '体积(m²)', model: 'volume' },
+        { label: '流水账号', model: 'current', notable: 'true' },
+        { label: '订单号', model: 'ordernumber', notable: 'true' },
       ],
       detailList: [
         {
@@ -173,25 +195,25 @@ export default {
           number: '3',
           weight: '40',
           volume: '50',
+          current: '0000',
+          ordernumber: '9999',
         },
       ],
-      detailList1: {
-        cost1: '200',
-        cost2: '300',
-        cost3: '400',
-        cost4: '500',
-      },
       editableTabsValue: '1',
       editableTabs: [],
-      tabIndex: 0,
+      tabIndex: 1,
       //支出项列表
       costList: [{ name: '罚款' }, { name: '过桥费' }, { name: '油费' }, { name: '长途运费' }],
       //供应商列表
       supplierList: [{ name: '供应商一' }, { name: '供应商二' }],
-      //合同列表
-      // contractList: [{ name: '合同一' }, { name: '合同二' }],
+      //车辆列表
+      carList: [{ name: '车辆一' }, { name: '车辆二' }],
       //税率列表
-      rateList: [{ name: '1' }, { name: '2' }],
+      rateList: [{ name: '1' }, { name: '1.003' }, { name: '1.05' }, { name: '1.06' }, { name: '1.09' }, { name: '1.1' }, { name: '1.13' }],
+      cost1: 0,
+      cost2: 0,
+      cost3: 0,
+      cost4: 0,
     };
   },
   created() {},
@@ -199,20 +221,118 @@ export default {
     async search() {
       console.log('查询');
     },
+    //查看
     see() {
       console.log('查看');
       this.dialog = true;
     },
-    addTab(index) {
+    //添加选项卡
+    addTab(value) {
+      if (this.editableTabsValue == '0') {
+        this.editableTabsValue = '1';
+      }
       this.editableTabs.push({});
-      console.log(index);
-      // this.editableTabsValue = targetName;
     },
+    //删除选项卡
     removeTab(targetName) {
       const name1 = Number(targetName);
+      const form1 = this.editableTabs[name1 - 1];
+      if (form1.cost1 || form1.cost3) {
+        this.cost1 -= Number(form1.cost1);
+        this.cost2 -= Number(form1.cost2);
+        this.cost3 -= Number(form1.cost3);
+        this.cost4 -= Number(form1.cost4);
+      }
       if (name1 > -1) {
-        this.editableTabs.splice(name1, 1);
+        this.editableTabs.splice(name1 - 1, 1);
       }
+      this.editableTabsValue = String(name1 - 1);
+    },
+    //选择税率
+    selectChange(val, index) {
+      const form = this.editableTabs[index];
+      if ((form.rate && form.cost1) || (form.rate && form.cost3)) {
+        const result = _.round(form.rate * form.cost1, 2);
+        console.log(result);
+        this.$set(form, `cost2`, result);
+        const result1 = _.round(form.rate * form.cost3, 2);
+        this.$set(form, `cost4`, result1);
+        if (this.editableTabs[index - 1]) {
+          this.cost2 = Number(this.editableTabs[index - 1].cost2) + form.cost2;
+          this.cost4 = Number(this.editableTabs[index - 1].cost4) + form.cost4;
+        } else {
+          this.cost2 = Number(form.cost2);
+          this.cost4 = Number(form.cost4);
+        }
+      }
+    },
+    //税前应收
+    change(index) {
+      const form = this.editableTabs[index];
+      if (form.rate && form.cost1) {
+        const result = _.round(form.rate * form.cost1, 2);
+        this.$set(form, `cost2`, result);
+        this.$set(form, `cost3`, form.cost1);
+        this.$set(form, `cost4`, result);
+        let num1 = 0;
+        let num2 = 0;
+        let num3 = 0;
+        let num4 = 0;
+        for (let item of this.editableTabs) {
+          num1 = _.round(num1 + Number(item.cost1), 2);
+          num2 = _.round(num2 + Number(item.cost2), 2);
+          num3 = _.round(num3 + Number(item.cost3), 2);
+          num4 = _.round(num4 + Number(item.cost4), 2);
+        }
+        this.cost1 = num1;
+        this.cost2 = num2;
+        this.cost3 = num3;
+        this.cost4 = num4;
+      }
+    },
+    //税前实收
+    toChange(index) {
+      const form = this.editableTabs[index];
+      if (form.rate && form.cost3) {
+        const result = parseFloat(form.rate * form.cost3).toFixed(2);
+        this.$set(form, `cost4`, result);
+        let num1 = 0;
+        let num2 = 0;
+        let num3 = 0;
+        let num4 = 0;
+        for (let item of this.editableTabs) {
+          num1 = _.round(num1 + Number(item.cost1), 2);
+          num2 = _.round(num2 + Number(item.cost2), 2);
+          num3 = _.round(num3 + Number(item.cost3), 2);
+          num4 = _.round(num4 + Number(item.cost4), 2);
+        }
+        this.cost1 = num1;
+        this.cost2 = num2;
+        this.cost3 = num3;
+        this.cost4 = num4;
+      }
+      // this.cost3 += Number(form.cost3);
+      // this.cost4 += Number(form.cost4);
+    },
+    //保存
+    save(data) {
+      // data.forEach(item => {
+      //   this.cost1 += Number(item.cost1);
+      //   console.log(this.cost1);
+      //   this.cost2 += Number(item.cost2);
+      //   this.cost3 += Number(item.cost3);
+      //   this.cost4 += Number(item.cost4);
+      // });
+      // this.back();
+    },
+    //返回
+    back() {
+      this.dialog = false;
+      this.editableTabs = [];
+      this.cost1 = 0;
+      this.cost2 = 0;
+      this.cost3 = 0;
+      this.cost4 = 0;
     },
   },
   computed: {
@@ -263,6 +383,6 @@ export default {
   border-color: #b3d8ff;
 }
 /deep/.el-form--inline .el-form-item__content {
-  width: 185px;
+  width: 166px;
 }
 </style>

+ 43 - 6
src/views/personnel/user.vue

@@ -23,7 +23,7 @@
     </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 v-model="form" :fields="fields" @save="turnSave" :rules="rules" status-icon>
         <template #options="{item}">
           <template v-if="item.model == 'department'">
             <el-option v-for="(item, index) in departOptions" :key="index" :value="item.name" :label="item.name"></el-option>
@@ -32,6 +32,14 @@
             <el-option v-for="(item, index) in sexOptions" :key="index" :value="item.name" :label="item.name"></el-option>
           </template>
         </template>
+        <template #custom="{item}">
+          <template v-if="item.model == 'password'">
+            <el-input type="password" v-model="form.password" autocomplete="off"></el-input>
+          </template>
+          <template v-if="item.model == 'againpassword'">
+            <el-input type="password" v-model="form.againpassword" autocomplete="off"></el-input>
+          </template>
+        </template>
       </data-form>
     </el-dialog>
   </div>
@@ -48,17 +56,44 @@ export default {
   components: {},
   data: function() {
     let _data = this;
+    // var validatePass = (rule, value, callback) => {
+    //   if (value === '') {
+    //     callback(new Error('请输入密码'));
+    //   } else {
+    //     if (this.ruleForm.checkPass !== '') {
+    //       this.$refs.ruleForm.validateField('checkPass');
+    //     }
+    //     callback();
+    //   }
+    // };
+    // var validatePass2 = (rule, value, callback) => {
+    //   if (value === '') {
+    //     callback(new Error('请再次输入密码'));
+    //   } else if (value !== this.ruleForm.pass) {
+    //     callback(new Error('两次输入密码不一致!'));
+    //   } else {
+    //     callback();
+    //   }
+    // };
     return {
       list: [
         {
           name: '张三',
           id: '1111',
           flag: '0',
+          department: '测试三',
+          sex: '女',
+          password: '123',
+          againpassword: '123',
         },
         {
           name: '李四',
           id: '2222',
           flag: '0',
+          department: '测试一',
+          sex: '男',
+          password: '123',
+          againpassword: '123',
         },
       ],
       total: 0,
@@ -89,8 +124,8 @@ export default {
       fields: [
         { label: '姓名', model: 'name' },
         { label: '登录id', model: 'id' },
-        { label: '密码', model: 'password', notable: true },
-        { label: '确认密码', model: 'againpassword', notable: true },
+        { label: '密码', model: 'password', notable: true, custom: 'true' },
+        { label: '确认密码', model: 'againpassword', notable: true, custom: 'true' },
         { label: '部门', model: 'department', type: 'select', notable: true },
         { label: '性别', model: 'sex', type: 'select', notable: true },
       ],
@@ -115,10 +150,12 @@ export default {
     },
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
-    //编辑
-    editor(data) {
-      console.log(data);
+    //编辑 解构出来
+    editor({ data }) {
+      this.$set(this, `form`, data);
+      this.dialog = true;
     },
     //删除
     toDelete(data) {

+ 2 - 0
src/views/supplier/addroute.vue

@@ -77,6 +77,7 @@ export default {
           endprovince: '吉林省',
           endcity: '长春市',
           endsite: '长春',
+          project: '项目一',
         },
       ],
       total: 0,
@@ -117,6 +118,7 @@ export default {
     //关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 16 - 5
src/views/supplier/addstyle.vue

@@ -23,6 +23,14 @@
             <el-radio v-model="radio1" label="禁用">禁用</el-radio>
             <el-radio v-model="radio1" label="启用">启用</el-radio>
           </template>
+          <template v-if="item.model == 'goods'">
+            <el-radio v-model="radio2" label="整车">整车</el-radio>
+            <el-radio v-model="radio2" label="零担">零担</el-radio>
+          </template>
+          <template v-if="item.model == 'computed'">
+            <el-radio v-model="radio3" label="体积">体积</el-radio>
+            <el-radio v-model="radio3" label="重量">重量</el-radio>
+          </template>
         </template>
       </data-form>
     </el-dialog>
@@ -46,9 +54,9 @@ export default {
         // { label: '发货方式', model: 'goods', noform: true },
         // { label: '计算方式', model: 'computed', noform: true },
         // { label: '操作时间', model: 'time', noform: true },
-        { label: '发货方式', model: 'goods' },
-        { label: '计算方式', model: 'computed' },
-        { label: '操作时间', model: 'time', type: 'datetime' },
+        // { label: '操作时间', model: 'time', type: 'datetime' },
+        { label: '计算方式', model: 'computed', type: 'radio' },
+        { label: '发货方式', model: 'goods', type: 'radio' },
         { label: '是否量份收费', model: 'money', type: 'radio' },
         { label: '使用状态', model: 'state', type: 'radio' },
       ],
@@ -58,7 +66,7 @@ export default {
           price: '100',
           money: '是',
           goods: '整车',
-          computed: 'xx',
+          computed: '体积',
           state: '启用',
           time: '2020-9-10',
         },
@@ -67,7 +75,7 @@ export default {
           price: '100',
           money: '否',
           goods: '整车',
-          computed: 'xx',
+          computed: '重量',
           state: '禁用',
           time: '2020-9-10',
         },
@@ -87,6 +95,8 @@ export default {
       },
       radio: '',
       radio1: '',
+      radio2: '',
+      radio3: '',
     };
   },
   created() {},
@@ -94,6 +104,7 @@ export default {
     // 关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 9 - 3
src/views/supplier/contract.vue

@@ -3,7 +3,6 @@
     <el-row>
       <el-col :span="24" class="container">
         <el-col :span="24" class="top">
-          <el-button type="primary" size="mini" style="float:left" @click="$router.go(-1)">返回</el-button>
           <el-button type="primary" size="mini" style="float:right" @click="dialog = true">添加</el-button>
         </el-col>
         <el-col :span="24" class="info">
@@ -36,7 +35,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 == 'name'">
+            <el-option v-for="(item, index) in nameList" :key="index" :value="item.name" :label="item.name"></el-option>
+          </template>
+        </template>
+      </data-form>
     </el-dialog>
   </div>
 </template>
@@ -54,7 +59,7 @@ export default {
   data: function() {
     return {
       fields: [
-        { label: '供应商', model: 'name', filter: 'select' },
+        { label: '供应商', model: 'name', filter: 'select', type: 'select' },
         { label: '合同编号', model: 'num', filter: 'input' },
         { label: '甲方', model: 'partA' },
         { label: '乙方', model: 'partB' },
@@ -114,6 +119,7 @@ export default {
     // 关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {

+ 1 - 0
src/views/supplier/project.vue

@@ -72,6 +72,7 @@ export default {
     //关闭
     toClose() {
       this.dialog = false;
+      this.form = {};
     },
     //保存
     turnSave(data) {