Explorar el Código

Merge branch 'master' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-wt

huang_an hace 1 año
padre
commit
660caaa441

+ 3 - 1
src/enum/dict.js

@@ -63,7 +63,9 @@ export default {
   '客户/供应商资质类型': 'contact_qc_type',
   派车任务类型: 'logistic_delivery_type',
   计划紧急程度: 'logistic_urgency_level_type',
-  计划工单费用类型: 'logistic_list_cost_type'
+  计划工单费用类型: 'logistic_list_cost_type',
+  驾照类型: 'driver_license_type',
+  单据类型: 'receipt_type'
 };
 
 export const numberList = [

+ 16 - 1
src/styles/transition/common.scss

@@ -63,5 +63,20 @@
   display: flex;
   align-items: center;
   justify-content: flex-end !important;
-  
+
+}
+.form_item_label {
+  .el-form-item__label {
+    line-height: 21px !important;
+  }
+}
+
+.el-form-box {
+  .el-form-item {
+    margin-bottom: 17px;
+
+    .el-form-item__error {
+      font-size: 11px;
+    }
+  }
 }

+ 1 - 1
src/views/bpm/handleTask/components/financialManage/components/customerListDialog.vue

@@ -12,7 +12,7 @@
         <!-- 表格 -->
         <template v-slot:content>
           <ele-pro-table ref="table" :columns="columns" :datasource="datasource" :key="assetTreeId" row-key="id"
-                         height="calc(100vh - 350px)" class="dict-table" @cell-click="cellClick">
+                         height="calc(100vh - 440px)" class="dict-table" @cell-click="cellClick">
             <!-- 表头工具栏 -->
             <template v-slot:action="{ row }">
               <el-radio class="radio" v-model="radio" :label="row.id"><i></i></el-radio>

+ 182 - 81
src/views/bpm/handleTask/components/financialManage/components/feeRelatedInfoTable.vue

@@ -30,10 +30,12 @@
           <el-popconfirm
             class="ele-action"
             title="确定要删除此信息吗?"
+            :disabled="form.datasource.length==1"
             @confirm="handleDelInfo($index)"
           >
             <template v-slot:reference>
               <el-link
+                :disabled="form.datasource.length==1"
                 type="danger"
                 :underline="false"
                 icon="el-icon-delete"
@@ -43,83 +45,70 @@
             </template>
           </el-popconfirm>
         </template>
-        <template v-slot:linkType="{row,$index}">
-          <el-form-item :prop="'datasource.'+$index+'.linkType'"
-                        :rules="{required:true,message:'请选择关联类型',trigger:['blur','change']}">
-            <DictSelection clearable dictName="关联类型" v-model="row.linkType"
-                           :disabled="dialogType==='view'"
-                           @itemChange="(val)=>handleChangeFinLink(val,row,$index)"></DictSelection>
+        <template v-slot:financeCostType="{row,$index}" v-if="dialogType!=='view'">
+          <el-form-item :prop="'datasource.'+$index+'.financeCostType'"
+                        :rules="{required:true,message:'请选择',trigger:['blur','change']}">
+            <ele-tree-select
+              clearable
+              filterable
+              :ref="'feeTypeTree'+$index"
+              :data="feeTypeList"
+              v-model="row.financeCostTypeName"
+              valueKey="id"
+              labelKey="name"
+              placeholder="请选择"
+              @change="(val)=>changeFeeTypeInfo(val,row,$index)"
+              default-expand-all
+            />
           </el-form-item>
         </template>
-        <template v-slot:linkName="{row,$index}" v-if="dialogType!=='view'">
-          <!--         客户   -->
-          <el-form-item v-if="row.linkType==100" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择客户',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        商机   -->
-          <el-form-item v-else-if="row.linkType==120" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择商机',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        销售合同   -->
-          <el-form-item v-else-if="row.linkType==130" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择销售合同',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        销售订单   -->
-          <el-form-item v-else-if="row.linkType==140" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择销售订单',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        销售对账单   -->
-          <el-form-item v-else-if="row.linkType==190" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择销售对账单',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
+        <template v-slot:linkType="{row,$index}" v-if="dialogType!=='view'">
+          <el-form-item :prop="'datasource.'+$index+'.linkType'">
+            <!--            <DictSelection clearable dictName="关联类型" v-model="row.linkType"-->
+            <!--                           :disabled="dialogType==='view'"-->
+            <!--                           @itemChange="(val)=>handleChangeFinLink(val,row,$index)"></DictSelection>-->
+            <el-select v-model="row.linkType" @change="(val)=>handleChangeFinLink(val,row,$index)" clearable>
+              <el-option v-for="item in getLinkTypeList" :key="item.value" :label="item.label"
+                         :value="item.value"></el-option>
+            </el-select>
           </el-form-item>
-          <!--        供应商   -->
-          <el-form-item v-else-if="row.linkType==210" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择供应商',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        采购计划   -->
-          <el-form-item v-else-if="row.linkType==230" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择采购计划',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
-          </el-form-item>
-          <!--        采购合同   -->
-          <el-form-item v-else-if="row.linkType==250" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,trigger:['blur','change']}">
+        </template>
+        <template v-slot:linkName="{row,$index}" v-if="dialogType!=='view'">
+          <el-form-item :prop="'datasource.'+$index+'.linkName'">
             <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
                       clearable></el-input>
           </el-form-item>
-          <!--        采购订单   -->
-          <el-form-item v-else-if="row.linkType==260" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择采购订单',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
+        </template>
+        <template v-slot:amount="{row,$index}" v-if="dialogType!=='view'">
+          <el-form-item :prop="'datasource.'+$index+'.amount'"
+                        :rules="{required:true,message:'请选择',trigger:['blur','change']}">
+            <el-input-number style="width: 100%" :controls="false" :min="0" v-model="row.amount" @change="handleChangeAmount"
+                             clearable></el-input-number>
           </el-form-item>
-
-          <!--        采购对账单   -->
-          <el-form-item v-else-if="row.linkType==290" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,message:'请选择采购对账单',trigger:['blur','change']}">
-            <el-input v-model="row.linkName" @click.native="(val)=>handleSelectData(val,row,$index)"
-                      clearable></el-input>
+        </template>
+        <template v-slot:files="{row,$index}">
+          <el-form-item :prop="'datasource.'+$index+'.files'">
+            <fileUpload
+              v-if="dialogType!=='view'"
+              v-model="row.files"
+              module="main"
+              :showLib="false"
+              :limit="1"
+            />
+            <el-link
+              v-else-if="row.files.length"
+              v-for="item in row.files"
+              type="primary"
+              :underline="false"
+              @click="downloadFile(item)">
+              {{ item.name }}
+            </el-link>
           </el-form-item>
-          <!--        项目   -->
-          <el-form-item v-else-if="row.linkType==900" :prop="'datasource.'+$index+'.linkName'"
-                        :rules="{required:true,trigger:['blur','change']}">
-
+        </template>
+        <template v-slot:remark="{row,$index}" v-if="dialogType!=='view'">
+          <el-form-item>
+            <el-input type="textarea" v-model="row.remark" clearable></el-input>
           </el-form-item>
-
-
         </template>
         <template v-slot:headerGLLXMC="{column}">
           <span class="is-required">{{ column.label }}</span>
@@ -170,10 +159,15 @@ import purchaseOrderListDialog from "@/views/bpm/handleTask/components/purchaseO
 import opportunityDialog from "./opportunityDialog.vue";
 import accountStatementDialog from "./accountstatementDialog.vue";
 import planDialog from "./planDialog.vue";
+import {getFile} from "@/api/system/file";
+import FileUpload from "@/components/upload/fileUpload.vue";
+import {getTreeByPid} from "@/api/classifyManage";
+import {getByCode} from "@/api/system/dictionary-data";
 
 export default {
   name: "relatedInfoTable",
   components: {
+    FileUpload,
     purchaseOrderListDialog,
     saleOrderListDialog,
     customerListDialog,
@@ -187,9 +181,13 @@ export default {
       type: Array,
       default: () => []
     },
+    documentType: {
+      type: [String,Number],
+      default: ''
+    },
     dialogType: {
       type: String,
-      default: ''
+      default: 'update'
     },
   },
   data() {
@@ -202,6 +200,14 @@ export default {
       accountStatementDialogFlag: false,
       planDialogFlag: false,
       accountType: 1,
+      feeTypeList: [],
+      fin_link_type: [],
+      CBToDT: {
+        1: [900, 120, 100, 1000],
+        2: [900, 120, 100, 230, 250, 260, 290],
+        3: [230, 250, 260, 290],
+        4: [],
+      },
       form: {
         datasource: []
       },
@@ -221,22 +227,63 @@ export default {
           fixed: 'left'
         },
         {
-          prop: 'linkType',
-          label: '关联类型',
+          prop: 'financeCostTypeName',
+          label: '财务费用类型',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 180,
+          slot: 'financeCostType',
+          headerSlot: 'headerGLLXMC',
+        },
+        // {
+        //   prop: 'YWFYLX',
+        //   label: '业务费用类型',
+        //   align: 'center',
+        //   showOverflowTooltip: true,
+        //   minWidth: 150,
+        //   slot: 'YWFYLX',
+        //   headerSlot: 'headerGLLXMC',
+        // },
+        {
+          prop: 'linkTypeName',
+          label: '关联业务类型',
           align: 'center',
           showOverflowTooltip: true,
           minWidth: 120,
           slot: 'linkType',
-          headerSlot: 'headerGLLXMC',
         },
         {
           prop: 'linkName',
-          label: '关联类型名称',
+          label: '单据名称',
           align: 'center',
           showOverflowTooltip: true,
           minWidth: 130,
           slot: 'linkName',
-          headerSlot: 'headerGLLXMC'
+        },
+        {
+          prop: 'amount',
+          label: '金额',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 120,
+          slot: 'amount',
+          headerSlot: 'headerGLLXMC',
+        },
+        {
+          prop: 'files',
+          label: '附件凭证',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 120,
+          slot: 'files',
+        },
+        {
+          prop: 'remark',
+          label: '备注',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 120,
+          slot: 'remark',
         },
       ]
       let action = [{
@@ -252,9 +299,28 @@ export default {
       this.dialogType === 'view' ? list = [...list] : list = [...list, ...action]
       return list
     },
+    getLinkTypeList() {
+      console.log(this.documentType);
+      if (this.documentType == 4 || !this.documentType || !this.CBToDT[this.documentType]) return this.fin_link_type
+      let data = []
+      this.CBToDT[this.documentType].forEach(item => {
+        let find = this.fin_link_type.find(i => i.value == item) || {}
+        find.value && data.push(find)
+      })
+      return data
+    },
   },
-  mounted() {
+  async mounted() {
     this.form.datasource = this.link
+    await this.getClassifyList(25, 'feeTypeList')
+    let {data} = await getByCode('fin_link_type')
+    this.fin_link_type = data.map(item => {
+      let values = Object.keys(item)
+      return {
+        value: values[0],
+        label: item[values[0]]
+      }
+    })
   },
   methods: {
     //新增关联信息数据
@@ -269,6 +335,14 @@ export default {
         }
       )
     },
+    downloadFile(file) {
+      getFile({objectName: file.storePath}, file.name);
+    },
+    //获取分类管理中的数据
+    async getClassifyList(id, listName) {
+      let res = await getTreeByPid(id)
+      this[listName] = res.data
+    },
     //
     handleSelectData(val, row, index) {
       this.editIndex = index
@@ -314,7 +388,7 @@ export default {
           this.handleSelectAccount(row);
           break;
         case '900': //项目
-          this.handleSelectPurchaseOrder(row);
+
           break;
 
 
@@ -329,19 +403,47 @@ export default {
       // }
 
     },
+    //获取费用类别选中数据
+    changeFeeTypeInfo(val, row, index) {
+      this.editIndex = index
+      if (!val) {
+        this.$set(this.form.datasource[this.editIndex], 'financeCostTypeName', '')
+        this.$set(this.form.datasource[this.editIndex], 'financeCostType', '')
+      }
+      let data = this.$refs['feeTypeTree' + index]?.$refs?.tree?.getCurrentNode() || {}
+      this.$set(this.form.datasource[this.editIndex], 'financeCostTypeName', data.name)
+      this.$set(this.form.datasource[this.editIndex], 'financeCostType', data.code)
+    },
+
     setSelectData(val) {
       this.$set(this.form.datasource[this.editIndex], 'linkId', val.id)
       this.$set(this.form.datasource[this.editIndex], 'linkName', val.name)
       this.$set(this.form.datasource[this.editIndex], 'linkCode', val.code)
     },
-    //新增关联信息数据
+    clearData() {
+      this.form.datasource.forEach((item, index) => {
+        this.$set(this.form.datasource[index], 'linkId', '')
+        this.$set(this.form.datasource[index], 'linkName', '')
+        this.$set(this.form.datasource[index], 'linkCode', '')
+        this.$set(this.form.datasource[index], 'linkTypeName', '')
+        this.$set(this.form.datasource[index], 'linkType', '')
+      })
+    },
+    handleChangeAmount(val, row) {
+      let totalPrice = this.form.datasource.reduce((total, item) => {
+        total+= item.amount
+        return total
+      },0)
+      this.$emit('setTotalPrice', totalPrice)
+    },
+    //删除关联信息数据
     handleDelInfo(index) {
       this.form.datasource.splice(index, 1)
+      this.handleChangeAmount()
     },
     //修改关联类型
     handleChangeFinLink(val, row, index) {
       this.editIndex = index
-
       this.setSelectData({
         id: '',
         name: '',
@@ -350,8 +452,8 @@ export default {
       this.$nextTick(() => {
         this.$refs.form.clearValidate('datasource.' + index + '.linkName')
       })
-      if (!val.dictValue) return row.linkTypeName = ''
-      row.linkTypeName = val.dictValue || ''
+      if (!val) return row.linkTypeName = ''
+      row.linkTypeName = this.fin_link_type.find(item => item.value == val)?.label
 
       // if (val.dictCode == 3) {
       //   this.getOpportunityList()
@@ -409,7 +511,6 @@ export default {
     },
     //获取选择的采购计划数据
     getPlanData(params) {
-      console.log(params);
       let row = {
         id: params.id,
         name: params.planName,

+ 126 - 40
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/addOrEditDialog.vue

@@ -4,7 +4,17 @@
     <el-form ref="form" :rules="rules" :model="form" label-width="100px">
       <headerTitle title="基本信息"></headerTitle>
       <el-row :gutter="12">
-        <el-col :span="12">
+        <el-col :span="8">
+          <el-form-item
+            label="单据类型"
+            prop="documentType"
+            style="margin-bottom: 22px"
+          >
+            <dict-selection dict-name="单据类型" v-model="form.documentType"
+                            @change="handleDocumentType"></dict-selection>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
           <el-form-item
             label="申请部门"
             prop="applyDeptId"
@@ -22,7 +32,7 @@
             />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="8">
           <el-form-item
             label="申请人"
             prop="applyUserId"
@@ -37,35 +47,56 @@
         </el-col>
       </el-row>
       <el-row :gutter="12">
-        <el-col :span="12">
+        <el-col :span="8">
           <el-form-item
-            label="费用类型"
-            prop="feeTypeId"
-            style="margin-bottom: 22px"
-          >
-            <ele-tree-select
-              clearable
-              filterable
-              ref="feeTypeTree"
-              :data="feeTypeList"
-              v-model="form.feeTypeId"
-              valueKey="id"
-              labelKey="name"
-              placeholder="请选择"
-              @change="changeFeeTypeInfo"
-              default-expand-all
-            />
+            label="收款名称"
+            style="margin-bottom: 22px">
+            <el-input v-model="form.collectionName" clearable @click.native="handleSelectContact"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item
+            label="开户行"
+            style="margin-bottom: 22px">
+            <el-input v-model="form.bankAccount" clearable></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="8">
           <el-form-item
-            label="金额"
-            prop="amount"
+            label="账户"
             style="margin-bottom: 22px">
-            <el-input-number v-model="form.amount" :precision="2" :controls="false" style="width: 100%"
-                             :min="0"></el-input-number>
+            <el-input v-model="form.bankName" clearable></el-input>
           </el-form-item>
         </el-col>
+        <!--        <el-col :span="8">-->
+        <!--          <el-form-item-->
+        <!--            label="费用类型"-->
+        <!--            prop="feeTypeId"-->
+        <!--            style="margin-bottom: 22px"-->
+        <!--          >-->
+        <!--            <ele-tree-select-->
+        <!--              clearable-->
+        <!--              filterable-->
+        <!--              ref="feeTypeTree"-->
+        <!--              :data="feeTypeList"-->
+        <!--              v-model="form.feeTypeId"-->
+        <!--              valueKey="id"-->
+        <!--              labelKey="name"-->
+        <!--              placeholder="请选择"-->
+        <!--              @change="changeFeeTypeInfo"-->
+        <!--              default-expand-all-->
+        <!--            />-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
+        <!--        <el-col :span="8">-->
+        <!--          <el-form-item-->
+        <!--            label="金额"-->
+        <!--            prop="amount"-->
+        <!--            style="margin-bottom: 22px">-->
+        <!--            <el-input-number v-model="form.amount" :precision="2" :controls="false" style="width: 100%"-->
+        <!--                             :min="0"></el-input-number>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
       </el-row>
       <!--        <el-col :span="12">-->
       <!--          <el-form-item-->
@@ -89,29 +120,44 @@
       <!--        </el-col>-->
 
       <el-row :gutter="12">
-        <el-col :span="24">
+        <el-col :span="8">
+          <el-row style="display: flex;flex-direction: column">
+            <el-col :span="24">
+              <el-form-item
+                label="金额"
+                style="margin-bottom: 22px">
+                <el-input v-model="form.amount" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item prop="repliedFiles" label="附件">
+                <fileUpload
+                  v-model="form.files"
+                  module="main"
+                  :showLib="false"
+                  :limit="10"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-col>
+        <el-col :span="16">
           <el-form-item
             label="备注"
             style="margin-bottom: 22px">
-            <el-input v-model="form.remark" type="textarea" clearable></el-input>
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="12">
-        <el-col :span="12">
-          <el-form-item prop="repliedFiles" label="附件">
-            <fileUpload
-              v-model="form.files"
-              module="main"
-              :showLib="false"
-              :limit="10"
-            />
+            <el-input :rows="4" v-model="form.remark" type="textarea" clearable></el-input>
           </el-form-item>
         </el-col>
+
       </el-row>
+
     </el-form>
     <headerTitle title="关联信息"></headerTitle>
-    <fee-related-info-table ref="feeRelatedInfoTable" v-if="form.link.length||dialogType=='add'" :link.sync="form.link"></fee-related-info-table>
+    <fee-related-info-table ref="feeRelatedInfoTable" @setTotalPrice="setTotalPrice" :documentType="form.documentType" v-if="form.link.length||dialogType=='add'" :link.sync="form.link"></fee-related-info-table>
+    <!--选择客户/供应商-->
+    <customer-list-dialog v-if="customerListDialogFlag" :customerListDialogFlag.sync="customerListDialogFlag"
+                          ref="customerListDialogRef" @changeParent="getCustomerData"
+    ></customer-list-dialog>
   </div>
 </template>
 <script>
@@ -127,13 +173,16 @@ import {getTreeByPid} from "@/api/classifyManage";
 import {getTableList} from '@/api/bpm/components/saleManage/quotation';
 import {getFile} from "@/api/system/file";
 import feeRelatedInfoTable from "@/views/bpm/handleTask/components/financialManage/components/feeRelatedInfoTable.vue";
+import customerListDialog from "@/views/bpm/handleTask/components/financialManage/components/customerListDialog.vue";
+import {contactDetail} from "@/api/bpm/components/saleManage/contact";
 
 export default {
   name: "add-or-edit-dialog",
   components: {
     fileUpload,
     personSelect,
-    feeRelatedInfoTable
+    feeRelatedInfoTable,
+    customerListDialog
   },
   computed: {
     ...mapGetters(['user'])
@@ -154,6 +203,11 @@ export default {
       title: '',
       form: {
         id: '',
+        documentType: '',
+        collectionName: '',
+        collectionId: '',
+        bankName: '',
+        bankAccount: '',
         accountingSubjectId: '',
         accountingSubjectCode: '',
         accountingSubjectName: "",
@@ -179,6 +233,7 @@ export default {
         // accountingSubjectId: {required: true, message: '请选择', trigger: 'change'},
         feeTypeId: {required: true, message: '请选择', trigger: 'change'},
         amount: {required: true, message: '请输入', trigger: 'blur'},
+        documentType: {required: true, message: '请选择', trigger: 'change'},
       }
     }
   },
@@ -199,6 +254,30 @@ export default {
     //获取详情
     async getFeeApplyInfoInfo(id) {
       this.form = await getFeeApplyInfoAPI(id)
+      this.form.documentType = this.form.documentType + ''
+    },
+    //选择供应商
+    handleSelectContact(row) {
+      if (this.form.documentType != '3') return
+      this.customerListDialogFlag = true
+      let params = {
+        id: '',
+        assetTreeId: '19',
+        classType: 2,
+        titleName: '选择供应商',
+      }
+      this.$nextTick(() => {
+        this.$refs.customerListDialogRef.init(params)
+      })
+    },
+    //获取选择 供应商/客户 数据
+    async getCustomerData(params) {
+      let {bankList} = await contactDetail(params.id)
+      this.form.bankName = bankList[0].bankName
+      this.form.collectionId = params.id
+      this.form.collectionName = params.name
+      this.form.bankAccount = bankList[0].accountNo
+      // this.setSelectData(params)
     },
     downloadFile(file) {
       getFile({objectName: file.storePath}, file.name);
@@ -253,6 +332,13 @@ export default {
     changeUserInfo(val, info) {
       this.form.applyUserName = info.name;
     },
+    handleDocumentType(val, oldVal) {
+      this.$message.warning('单据类型发生变化,请重新选择业务类型')
+      this.$refs.feeRelatedInfoTable.clearData()
+    },
+    setTotalPrice(val) {
+      this.form.amount = val
+    },
     //
     getTableValue() {
       return new Promise((resolve) => {

+ 117 - 43
src/views/bpm/handleTask/components/financialManage/feeManage/feeApplication/detailDialog.vue

@@ -1,76 +1,150 @@
 <template>
  <div>
-   <el-form ref="form" :model="form" label-width="100px">
+   <el-form ref="form" class="el-form-box" :model="form" label-width="100px">
      <headerTitle title="基本信息"></headerTitle>
-     <el-row :gutter="12">
-       <el-col :span="12">
+     <el-row >
+       <el-col :span="8">
          <el-form-item
-           label="申请部门:"
+           label="单据类型"
+           prop="documentType">
+           <dict-selection dict-name="单据类型" v-model="form.documentType" disabled
+           ></dict-selection>
+         </el-form-item>
+       </el-col>
+       <el-col :span="8">
+         <el-form-item
+           label="申请部门"
            prop="applyDeptId"
-
          >
-           {{ form.applyDeptName }}
+           <el-input v-model="form.applyDeptName" disabled></el-input>
          </el-form-item>
        </el-col>
-       <el-col :span="12">
+       <el-col :span="8">
          <el-form-item
-           label="申请人"
+           label="申请人"
            prop="applyUserId"
-
          >
-           {{ form.applyUserName }}
+           <el-input v-model="form.applyUserName" disabled></el-input>
+
          </el-form-item>
        </el-col>
      </el-row>
-     <el-row :gutter="12">
-       <el-col :span="12">
+     <el-row>
+       <el-col :span="8">
          <el-form-item
-           label="费用类型:"
-           prop="feeTypeId"
-
+           label="收款名称"
          >
-           {{ form.feeTypeName }}
+           <el-input v-model="form.collectionName" clearable disabled></el-input>
          </el-form-item>
        </el-col>
-       <el-col :span="12">
+       <el-col :span="8">
          <el-form-item
-           label="金额:"
-           prop="amount"
+           label="开户行"
          >
-           {{ form.amount }}
+           <el-input v-model="form.bankAccount" disabled></el-input>
          </el-form-item>
        </el-col>
-     </el-row>
-     <el-row :gutter="12">
-       <el-col :span="12">
+       <el-col :span="8">
          <el-form-item
-           label="会计科目:"
+           label="账户"
          >
-           {{ form.accountingSubjectName }}
+           <el-input v-model="form.bankName" disabled></el-input>
          </el-form-item>
        </el-col>
-       <el-col :span="12">
+       <!--        <el-col :span="8">-->
+       <!--          <el-form-item-->
+       <!--            label="费用类型"-->
+       <!--            prop="feeTypeId"-->
+       <!--           -->
+       <!--          >-->
+       <!--            <ele-tree-select-->
+       <!--              clearable-->
+       <!--              filterable-->
+       <!--              ref="feeTypeTree"-->
+       <!--              :data="feeTypeList"-->
+       <!--              v-model="form.feeTypeId"-->
+       <!--              valueKey="id"-->
+       <!--              labelKey="name"-->
+       <!--              placeholder="请选择"-->
+       <!--              @change="changeFeeTypeInfo"-->
+       <!--              default-expand-all-->
+       <!--            />-->
+       <!--          </el-form-item>-->
+       <!--        </el-col>-->
+       <!--        <el-col :span="8">-->
+       <!--          <el-form-item-->
+       <!--            label="金额"-->
+       <!--            prop="amount"-->
+       <!--           >-->
+       <!--            <el-input-number v-model="form.amount" :precision="2" :controls="false" style="width: 100%"-->
+       <!--                             :min="0"></el-input-number>-->
+       <!--          </el-form-item>-->
+       <!--        </el-col>-->
+     </el-row>
+     <!--        <el-col :span="12">-->
+     <!--          <el-form-item-->
+     <!--            label="会计科目"-->
+     <!--            prop="accountingSubjectId"-->
+     <!--           -->
+     <!--          >-->
+     <!--            <ele-tree-select-->
+     <!--              clearable-->
+     <!--              filterable-->
+     <!--              ref="treeSelect"-->
+     <!--              :data="accountingSubjectList"-->
+     <!--              v-model="form.accountingSubjectId"-->
+     <!--              valueKey="id"-->
+     <!--              labelKey="name"-->
+     <!--              placeholder="请选择"-->
+     <!--              @change="changeSubjectInfo"-->
+     <!--              default-expand-all-->
+     <!--            />-->
+     <!--          </el-form-item>-->
+     <!--        </el-col>-->
+
+     <el-row>
+       <el-col :span="8">
+         <el-row style="display: flex;flex-direction: column">
+           <el-col :span="24">
+             <el-form-item
+               label="金额"
+             >
+               <el-input v-model="form.amount" disabled></el-input>
+             </el-form-item>
+           </el-col>
+<!--           <el-col :span="24">-->
+<!--             <el-form-item-->
+<!--               label="会计科目:">-->
+<!--               <el-input v-model="form.accountingSubjectName" disabled></el-input>-->
+
+<!--             </el-form-item>-->
+<!--           </el-col>-->
+           <el-col :span="24">
+             <el-form-item prop="repliedFiles" label="附件">
+               <el-link
+                 v-if="form.files.length"
+                 v-for="item in form.files"
+                 type="primary"
+                 :underline="false"
+                 @click="downloadFile(item)">
+                 {{ item.name }}
+               </el-link>
+             </el-form-item>
+           </el-col>
+
+         </el-row>
+       </el-col>
+       <el-col :span="16">
          <el-form-item
-           label="备注:">
-           {{ form.remark }}
+           label="备注"
+         >
+           <el-input :rows="3" v-model="form.remark" type="textarea" disabled></el-input>
          </el-form-item>
        </el-col>
+
      </el-row>
-     <el-row :gutter="12">
-       <el-col :span="12">
-         <el-form-item prop="" label="附件:">
-           <el-link
-             v-if="form.files.length"
-             v-for="item in form.files"
-             type="primary"
-             :underline="false"
-             @click="downloadFile(item)"
-           >
-             {{ item.name }}
-           </el-link
-           >
-         </el-form-item>
-       </el-col>
+     <el-row>
+
      </el-row>
    </el-form>
    <headerTitle title="关联信息"></headerTitle>

+ 18 - 3
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/addOrEditDialog.vue

@@ -70,14 +70,24 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
+
         <el-col :span="12">
-          <el-form-item label="车辆号" prop="carNo" style="margin-bottom: 22px">
-            <el-input clearable v-model="form.carNo" placeholder="请输入"/>
+          <el-form-item
+            label="发货日期"
+            prop="sendDate"
+            style="margin-bottom: 22px">
+            <el-date-picker
+              v-model="form.sendDate"
+              style="width: 100%"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="选择日期">
+            </el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item
-            label="送货单号"
+            label="货单号"
             prop="sendNoteNo"
             style="margin-bottom: 22px"
           >
@@ -90,6 +100,11 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="车辆号" prop="carNo" style="margin-bottom: 22px">
+            <el-input clearable v-model="form.carNo" placeholder="请输入"/>
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
           <el-form-item prop="sendFiles" label="附件">
             <fileUpload

+ 15 - 6
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/detailDialog.vue

@@ -60,18 +60,18 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
+
         <el-col :span="12">
           <el-form-item
-            label="车辆号:"
-            prop="carNo"
-            style="margin-bottom: 22px"
-          >
-            {{ form.carNo }}
+            label="发货日期:"
+            prop="sendDate"
+            style="margin-bottom: 22px">
+            {{ form.sendDate }}
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item
-            label="货单号:"
+            label="货单号:"
             prop="sendNoteNo"
             style="margin-bottom: 22px"
           >
@@ -89,6 +89,15 @@
             {{ form.sourceTypeName }}
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="车辆号:"
+            prop="carNo"
+            style="margin-bottom: 22px"
+          >
+            {{ form.carNo }}
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
           <el-form-item prop="files" label="附件:">
             <div v-if="form.files && form.files?.length">

+ 16 - 2
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/addOrEditDialog.vue

@@ -66,10 +66,23 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
-
         <el-col :span="12">
           <el-form-item
-            label="送货单号"
+            label="收货日期"
+            prop="receiveDate"
+            style="margin-bottom: 22px">
+            <el-date-picker
+              v-model="form.receiveDate"
+              style="width: 100%"
+              type="date"
+              value-format="yyyy-MM-dd"
+              placeholder="选择日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="收货单号"
             prop="sendNoteNo"
             style="margin-bottom: 22px"
           >
@@ -149,6 +162,7 @@ export default {
       form: {
         id: '',
         carNo: '',
+        receiveDate: '',
         files: [],
         linkName: '',
         linkPhone: '',

+ 9 - 2
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/detailDialog.vue

@@ -57,10 +57,17 @@
         </el-col>
       </el-row>
       <el-row :gutter="20">
-
         <el-col :span="12">
           <el-form-item
-            label="送货单号:"
+            label="收货日期:"
+            prop="receiveDate"
+            style="margin-bottom: 22px">
+            {{ form.receiveDate }}
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="收货单号:"
             prop="sendNoteNo"
             style="margin-bottom: 22px"
           >