Explorar o código

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-eom into dev

# Conflicts:
#	src/BIZComponents/outdetails.vue
yijing hai 1 ano
pai
achega
4da79254e0
Modificáronse 100 ficheiros con 1411 adicións e 1216 borrados
  1. 1 0
      src/BIZComponents/CategoryDialog.vue
  2. 2 0
      src/BIZComponents/autogenerateDialog.vue
  3. 1 0
      src/BIZComponents/innerboundDetailsDialog.vue
  4. 16 11
      src/BIZComponents/innerdetails.vue
  5. 21 3
      src/BIZComponents/inventoryTable.vue
  6. 1 0
      src/BIZComponents/outboundDetailsDialog.vue
  7. 21 14
      src/BIZComponents/outdetails.vue
  8. 2 0
      src/BIZComponents/procedure/taskinstanceDialog.vue
  9. 2 0
      src/BIZComponents/processSubmitDialog/processSubmitDialog.vue
  10. 2 0
      src/BIZComponents/selectStockLedger/selectStockLedgerDialog1.vue
  11. 21 0
      src/api/system/file/index.js
  12. 2 0
      src/components/CreatePlan/CreateBatch.vue
  13. 2 0
      src/components/CreatePlan/ProductionVersion.vue
  14. 2 0
      src/components/CreatePlan/equipment-dailog.vue
  15. 2 0
      src/components/ProductionVersion2/index.vue
  16. 2 0
      src/components/addDoc/file-edit.vue
  17. 2 0
      src/components/addDoc/getCode.vue
  18. 4 0
      src/components/addDoc/main.vue
  19. 2 0
      src/components/select/organization/components/org-edit.vue
  20. 2 0
      src/components/select/organization/components/org-user-edit.vue
  21. 3 2
      src/components/upload/import-dialog.vue
  22. 1 1
      src/enum/dict.js
  23. 2 9
      src/views/contractManage/contractBook/components/addDialog.vue
  24. 2 9
      src/views/contractManage/contractBook/components/detailDialog.vue
  25. 2 8
      src/views/contractManage/contractBook/components/detailDialog1.vue
  26. 2 0
      src/views/contractManage/contractBook/components/generateContractsDialog.vue
  27. 2 0
      src/views/contractManage/contractBook/components/generateContractsDialog1.vue
  28. 3 9
      src/views/contractManage/contractChange/components/addOrEditDialog.vue
  29. 3 9
      src/views/financialManage/feeManage/feeApplication/addOrEditDialog.vue
  30. 4 9
      src/views/financialManage/feeManage/feeApplication/detailDialog.vue
  31. 2 0
      src/views/financialManage/invoiceManage/components/accountInfoDialog.vue
  32. 2 9
      src/views/financialManage/invoiceManage/components/addOrEditDialog.vue
  33. 2 9
      src/views/financialManage/invoiceManage/components/detailDialog.vue
  34. 2 0
      src/views/financialManage/payableManage/components/detailDialog.vue
  35. 2 0
      src/views/financialManage/payableManage/components/detailDialog1.vue
  36. 2 0
      src/views/financialManage/payableManage/components/paymentDialog.vue
  37. 2 0
      src/views/financialManage/payableManage/components/paymentListDialog.vue
  38. 2 0
      src/views/financialManage/receivableManage/components/collectionDialog.vue
  39. 2 0
      src/views/financialManage/receivableManage/components/detailDialog.vue
  40. 2 0
      src/views/financialManage/receivableManage/components/detailDialog1.vue
  41. 2 0
      src/views/financialManage/receivableManage/components/receivableDialog.vue
  42. 2 0
      src/views/financialManage/settlementAccount/components/addOrEditDialog.vue
  43. 2 9
      src/views/marketManagem/components/addOrEditDialog.vue
  44. 2 0
      src/views/marketManagem/components/userList.vue
  45. 2 9
      src/views/marketManagem/components/viewDialog.vue
  46. 2 0
      src/views/purchasingManage/inquiryManage/components/detailDialog.vue
  47. 2 0
      src/views/purchasingManage/inquiryManage/components/generateContractsDialog.vue
  48. 2 0
      src/views/purchasingManage/producerManage/components/addContactDialog.vue
  49. 478 371
      src/views/purchasingManage/producerManage/components/certificateQualificationsDialog.vue
  50. 2 0
      src/views/purchasingManage/producerManage/components/contactDetailDialog.vue
  51. 2 9
      src/views/purchasingManage/purchaseNeedManage/components/addDialog.vue
  52. 2 9
      src/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue
  53. 3 9
      src/views/purchasingManage/purchaseOrder/accountstatement/components/addAccountDialog.vue
  54. 4 10
      src/views/purchasingManage/purchaseOrder/accountstatement/components/detailDialog.vue
  55. 3 9
      src/views/purchasingManage/purchaseOrder/components/addDialog.vue
  56. 2 0
      src/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue
  57. 2 9
      src/views/purchasingManage/purchaseOrder/components/detailDialog.vue
  58. 2 0
      src/views/purchasingManage/purchaseOrder/components/generateOrderDialog.vue
  59. 31 41
      src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue
  60. 2 7
      src/views/purchasingManage/purchaseOrder/components/planTableList.vue
  61. 2 0
      src/views/purchasingManage/purchaseOrder/components/supplierGoodsListDialog.vue
  62. 2 9
      src/views/purchasingManage/purchaseOrder/invoice/components/addInvoiceDialog.vue
  63. 2 9
      src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue
  64. 84 47
      src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue
  65. 2 0
      src/views/purchasingManage/purchaseOrder/invoice/components/outboundDetailsDialog.vue
  66. 2 9
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/addOrEditDialog.vue
  67. 2 9
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/detailDialog.vue
  68. 4 6
      src/views/purchasingManage/purchaseOrder/returnGoods/components/addReturnGoodsDialog.vue
  69. 3 9
      src/views/purchasingManage/purchaseOrder/returnGoods/components/detailDialog.vue
  70. 2 0
      src/views/purchasingManage/purchaseOrder/returnGoods/components/innerboundDetailsDialog.vue
  71. 3 9
      src/views/purchasingManage/purchasePlanManage/components/addDialog.vue
  72. 2 9
      src/views/purchasingManage/purchasePlanManage/components/detailDialog.vue
  73. 2 0
      src/views/purchasingManage/purchasePlanManage/components/splitDialog.vue
  74. 2 0
      src/views/purchasingManage/supplierManage/components/addContactDialog.vue
  75. 534 417
      src/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue
  76. 2 0
      src/views/purchasingManage/supplierManage/components/contactDetailDialog.vue
  77. 2 9
      src/views/saleManage/businessOpportunity/components/addOpportunityDialog.vue
  78. 2 0
      src/views/saleManage/businessOpportunity/components/assignDialog.vue
  79. 2 0
      src/views/saleManage/businessOpportunity/components/opportunityDetailDialog.vue
  80. 2 9
      src/views/saleManage/contact/components/addContactDialog.vue
  81. 2 0
      src/views/saleManage/contact/components/assignDialog.vue
  82. 2 0
      src/views/saleManage/contact/components/certificateQualificationsDialog.vue
  83. 2 0
      src/views/saleManage/contact/components/contactDetailDialog.vue
  84. 2 0
      src/views/saleManage/contact/index.vue
  85. 4 9
      src/views/saleManage/quotation/components/addDialog.vue
  86. 4 10
      src/views/saleManage/quotation/components/detailDialog.vue
  87. 3 9
      src/views/saleManage/saleOrder/accountstatement/components/addAccountDialog.vue
  88. 4 6
      src/views/saleManage/saleOrder/accountstatement/components/detailDialog.vue
  89. 1 0
      src/views/saleManage/saleOrder/components/addDialog.vue
  90. 2 1
      src/views/saleManage/saleOrder/components/detailDialog.vue
  91. 2 0
      src/views/saleManage/saleOrder/customerReturnOrder/add-sale-order-dialog.vue
  92. 2 9
      src/views/saleManage/saleOrder/customerReturnOrder/addOrEditDialog.vue
  93. 2 0
      src/views/saleManage/saleOrder/customerReturnOrder/detailDialog.vue
  94. 2 0
      src/views/saleManage/saleOrder/entrustedReceive/components/addOrEditDialog.vue
  95. 2 0
      src/views/saleManage/saleOrder/entrustedReceive/components/detailDialog.vue
  96. 2 0
      src/views/saleManage/saleOrder/entrustedReceive/components/outboundDetailsDialog.vue
  97. 4 9
      src/views/saleManage/saleOrder/exceptionManagement/components/addOrEditDialog.vue
  98. 4 9
      src/views/saleManage/saleOrder/invoice/components/addInvoiceDialog.vue
  99. 3 9
      src/views/saleManage/saleOrder/invoice/components/detailDialog.vue
  100. 1 0
      src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue

+ 1 - 0
src/BIZComponents/CategoryDialog.vue

@@ -8,6 +8,7 @@
     append-to-body
     width="30%"
     :maxable="true"
+    :resizable="true"
   >
     <div class="ele-border-lighter sys-organization-list">
       <el-tree

+ 2 - 0
src/BIZComponents/autogenerateDialog.vue

@@ -9,6 +9,8 @@
     :close-on-click-modal="false"
     :width="isAuto ? '30%' : '50%'"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" class="el-form-box" v-if="!isAuto">
       <el-row>

+ 1 - 0
src/BIZComponents/innerboundDetailsDialog.vue

@@ -9,6 +9,7 @@
     width="70%"
     :before-close="cancel"
     :maxable="true"
+    :resizable="true"
   >
     <inner-bound-details ref="innerBoundDetailsRef"></inner-bound-details>
   </ele-modal>

+ 16 - 11
src/BIZComponents/innerdetails.vue

@@ -41,11 +41,11 @@
                   <span>{{ infoData?.createTime }}</span>
                 </el-form-item>
               </el-col>
-              <el-col :span="8">
+              <!-- <el-col :span="8">
                 <el-form-item label="状态:">
                   <span>{{ stepsTitle }}</span>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <el-col :span="8">
                 <el-form-item label="审核人:">
                   <span>{{ infoData?.verifyName }}</span>
@@ -248,11 +248,11 @@
             :header-cell-style="rowClass"
             v-el-table-infinite-scroll="pickingHandleScroll"
             @selection-change="handleSelectionChange"
-
           >
             <el-table-column label="序号" type="index" width="50">
             </el-table-column>
-            <el-table-column type="selection" width="55" align="center"> </el-table-column>
+            <el-table-column type="selection" width="55" align="center">
+            </el-table-column>
 
             <el-table-column
               label="编码"
@@ -475,12 +475,13 @@
         newColumns: [], // 动态表头
         qualityStatus: {
           0: '未质检',
-          1: '已质检'
+          1: '已质检',
         }, // 质检状态 0未检 1已检
         qualityResults: {
           1: '合格',
-          2: '不合格'
-        }, // 质检结果 1合格 2不合格
+          2: '不合格',
+          3: '让步接收',
+        }, // 质检结果 1合格 2不合格 
         productList: [], // 产品列表
         showPackingList: [], // 展示的包装列表
         packingList: [], // 包装列表
@@ -492,7 +493,7 @@
         materielPageNum: 1,
         codeList: [],
         infoData: {},
-        stepsTitle: '已完成',
+        // stepsTitle: '已完成',
         stepsStatus: 'success',
         active: 0
       };
@@ -608,8 +609,12 @@
       ...mapActions('dict', ['requestDict']),
       getSceneState: useDictLabel(sceneStateEnum),
       handleAssetType(r) {
-        const code = this.codeList.find((item) => item.dictCode == r);
-        return code?.dictValue;
+        let codes = r.split(',');
+
+        let name = codes.map((code) => {
+          return this.codeList.find((val) => val.dictCode == code)?.dictValue;
+        });
+        return name.toString();
       },
       tableRowClassName({ row, rowIndex }) {
         if (row.result == 2) {
@@ -719,7 +724,7 @@
           item['productCode'] = item.categoryCode;
           item['measuringUnit'] = item.measureUnit;
           item['productId'] = item.categoryId;
-          item['receiveTotalWeight']=item.weight;
+          item['receiveTotalWeight'] = item.weight;
           this.productList.forEach((val) => {
             if (item.categoryCode == val.categoryCode) {
               item['warehouseId'] = val.warehouseId;

+ 21 - 3
src/BIZComponents/inventoryTable.vue

@@ -322,7 +322,7 @@
           </el-input>
         </el-form-item>
       </template>
-      <template v-slot:notaxSinglePrice="scope">
+      <!-- <template v-slot:notaxSinglePrice="scope">
         <el-form-item
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
@@ -335,7 +335,7 @@
             <template slot="append">元</template>
           </el-input>
         </el-form-item>
-      </template>
+      </template> -->
 
       <template v-slot:taxRate="scope">
         <el-form-item
@@ -347,6 +347,7 @@
             v-model="scope.row.taxRate"
             placeholder="请输入"
             type="number"
+            @input="getNotaxSinglePrice"
           >
             <template slot="append">%</template>
           </el-input>
@@ -737,7 +738,7 @@
         default: false
       },
       isSalesRecord: {
-        default: '',
+        default: ''
       }
     },
     data() {
@@ -1250,6 +1251,7 @@
           this.$emit('setDiscountTotalPrice', allPrice);
         }
         this.$emit('setCountAmount', this.allPrice);
+        this.getNotaxSinglePrice()
       },
       setCustomerMark(customerMark) {
         this.form.datasource.forEach((item) => {
@@ -1257,6 +1259,22 @@
           this.$forceUpdate();
         });
       },
+      //计算不含税单价
+      getNotaxSinglePrice() {
+        this.form.datasource.forEach((item, index) => {
+          if (item.singlePrice && item.taxRate) {
+            this.$set(
+              this.form.datasource[index],
+              'notaxSinglePrice',
+              parseFloat(
+                (item.singlePrice / (1 + item.taxRate / 100)).toFixed(2)
+              )
+            );
+          } else {
+            this.$set(this.form.datasource[index], 'notaxSinglePrice', '');
+          }
+        });
+      },
       //设置优惠后总金额修改产品单价
       discountInputByOrder(val) {
         this.form.discountTotalPrice = val;

+ 1 - 0
src/BIZComponents/outboundDetailsDialog.vue

@@ -9,6 +9,7 @@
     width="70%"
     :before-close="cancel"
     :maxable="true"
+    :resizable="true"
 
   >
     <div>

+ 21 - 14
src/BIZComponents/outdetails.vue

@@ -474,7 +474,9 @@
     getInfoBySourceBizNoAPI,
     getInfoBySourceBizNoAll
   } from '@/api/wms';
-  // import { getInfoBySourceBizNoAll } from '@/api/wms';
+  import {
+    getUserDetail
+  } from '@/api/system/organization/index.js';
 
   import { fieldModelAPI } from '@/api/main';
   export default {
@@ -620,8 +622,12 @@
       ...mapActions('dict', ['requestDict']),
       getSceneState: useDictLabel(outputSceneStateEnum),
       handleAssetType(r) {
-        const code = this.codeList.find((item) => item.dictCode == r);
-        return code?.dictValue;
+        let codes = r&&r.split(',');
+
+        let name = codes?.map((code) => {
+          return this.codeList.find((val) => val.dictCode == code)?.dictValue;
+        });
+        return name?.toString();
       },
       tableRowClassName({ row, rowIndex }) {
         console.log(row);
@@ -649,20 +655,21 @@
       async _getInfo(sourceBizNo, type, list = []) {
         const dataArray = await getInfoBySourceBizNoAll(sourceBizNo);
         let res = {};
-       
+
         if (dataArray && dataArray.length > 0) {
           res = JSON.parse(JSON.stringify(dataArray[0]));
-          res['outInDetailList']=[]
-          dataArray.forEach(item=>{
-            console.log(item,'item')
-            item.outInDetailList.forEach(val=>{
-              val['bizNo']=item.bizNo
-              res['outInDetailList'].push(val)
-            })
-          })
+          res['outInDetailList'] = [];
+          dataArray.forEach((item) => {
+            console.log(item, 'item');
+            item.outInDetailList.forEach((val) => {
+              val['bizNo'] = item.bizNo;
+              res['outInDetailList'].push(val);
+            });
+          });
           res['bizNo'] = dataArray.map((item) => item.bizNo);
         }
-        console.log(res,'ressssssssssssssssss')
+        let user=await getUserDetail(res.extInfo?.createUserId)
+        res.extInfo['deptName']=user.deptName
         // res
         this.init(res, type);
       },
@@ -681,7 +688,7 @@
                     ...packingItem,
                     categoryName: productItem.categoryName,
                     categoryCode: productItem.categoryCode,
-                    bizNo:productItem.bizNo,
+                    bizNo: productItem.bizNo,
                     materialDetailList: packingItem.materialDetailList.map(
                       (materialItem) => {
                         return {

+ 2 - 0
src/BIZComponents/procedure/taskinstanceDialog.vue

@@ -7,6 +7,8 @@
     :close-on-click-modal="false"
     custom-class="ele-dialog-form"
     title="工序"
+    :maxable="true"
+    :resizable="true"
     @update:visible="updateVisible(false)"
   >
     <header-title title="基本信息"> </header-title>

+ 2 - 0
src/BIZComponents/processSubmitDialog/processSubmitDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="50%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <!--    <el-steps :active="active" align-center style="transform: scale(0.8)">-->
     <!--      <el-step title="流程发起"></el-step>-->

+ 2 - 0
src/BIZComponents/selectStockLedger/selectStockLedgerDialog1.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div id="stockLedger__index">
       <el-card shadow="never">

+ 21 - 0
src/api/system/file/index.js

@@ -82,3 +82,24 @@ export async function getFileList (data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+
+/**
+ * 导入文件 批量
+ * @param file 文件
+ */
+export async function importBatch(data) {
+  const formData = new FormData();
+  data.multiPartFiles.forEach((item, index) => {
+    formData.append(`file`, item);
+  });
+  const res = await request.post(
+    `/eom/saleorder/importFile`,
+    formData
+  );
+  if (res.data.code === '0') {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+

+ 2 - 0
src/components/CreatePlan/CreateBatch.vue

@@ -4,6 +4,8 @@
     title="创建配料计划"
     width="45vw"
     append-to-body
+	:maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="110px">
 		<el-row :gutter="15">

+ 2 - 0
src/components/CreatePlan/ProductionVersion.vue

@@ -4,6 +4,8 @@
     title="选择生产版本"
     width="75vw"
     append-to-body
+    :maxable="true"
+    :resizable="true"
   >
     <el-table
       :data="tableData"

+ 2 - 0
src/components/CreatePlan/equipment-dailog.vue

@@ -4,6 +4,8 @@
     title="添加工单-选择设备"
     width="65vw"
     append-to-body
+    :maxable="true"
+    :resizable="true"
   >
     <div class="search-box">
       设备名称

+ 2 - 0
src/components/ProductionVersion2/index.vue

@@ -9,6 +9,8 @@
     append-to-body
     :centered="true"
     width="70%"
+    :maxable="true"
+    :resizable="true"
   >
     <el-card shadow="never">
       <productionSearch @search="reload"></productionSearch>

+ 2 - 0
src/components/addDoc/file-edit.vue

@@ -9,6 +9,8 @@
     @close="cancel"
     :title="title"
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">

+ 2 - 0
src/components/addDoc/getCode.vue

@@ -8,6 +8,8 @@
     append-to-body
     @close="cancel"
     title="申请编码"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">

+ 4 - 0
src/components/addDoc/main.vue

@@ -6,6 +6,8 @@
     custom-class="ele-dialog-form"
     append-to-body
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <!-- 数据表格 -->
     <ele-pro-table
@@ -60,6 +62,8 @@
       :close-on-click-modal="false"
       custom-class="ele-dialog-form"
       append-to-body
+      :maxable="true"
+    :resizable="true"
     >
       <doc_template
         :disabledTableList="tableList"

+ 2 - 0
src/components/select/organization/components/org-edit.vue

@@ -7,6 +7,8 @@
     custom-class="ele-dialog-form"
     :title="isUpdate ? '修改机构' : '添加机构'"
     @update:visible="updateVisible"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">

+ 2 - 0
src/components/select/organization/components/org-user-edit.vue

@@ -7,6 +7,8 @@
     custom-class="ele-dialog-form"
     :title="isUpdate ? '修改用户' : '添加用户'"
     @update:visible="updateVisible"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">

+ 3 - 2
src/components/upload/import-dialog.vue

@@ -9,11 +9,12 @@
           :show-file-list="false"
           :http-request="handlSuccess"
           :before-upload="beforeUpload"
+          :multiple="true"
         >
           <el-button icon="el-icon-plus" size="small" type="primary"
             >文件上传</el-button
           >
-          <div slot="tip" class="el-upload__tip">
+          <!-- <div slot="tip" class="el-upload__tip">
             只能上传excel文件,点击
             <el-link
               type="primary"
@@ -22,7 +23,7 @@
             >
               下载模板</el-link
             >
-          </div>
+          </div> -->
         </el-upload>
       </el-form-item>
       <el-form-item label="上传列表">

+ 1 - 1
src/enum/dict.js

@@ -239,7 +239,7 @@ export const lbjtList = {
 //需求类型
 export const requirementSourceType=[
   { value: '1', label: '生产性物资采购' },
-  { value: '2', label: '非生产性物资采' },
+  { value: '2', label: '非生产性物资采购' },
   { value: '3', label: '带料生产委外' },
   { value: '4', label: '不带料生产委外' },
   { value: '5', label: '研发委外' },

+ 2 - 9
src/views/contractManage/contractBook/components/addDialog.vue

@@ -8,15 +8,10 @@
     :close-on-click-modal="false"
     width="70%"
     append-to-body
-    :fullscreen="fullscreen"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :model="form"
@@ -591,7 +586,6 @@
 </template>
 
 <script>
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { emailReg, telReg } from 'ele-admin';
   import { acceptUnpackoptions } from '@/enum/dict';
   import inventoryTable from './inventoryTable.vue';
@@ -676,7 +670,6 @@
       inquiryList,
       quotationList,
       fileMain,
-      modalTitle,
       inventoryTable1,
       personSelect
     },

+ 2 - 9
src/views/contractManage/contractBook/components/detailDialog.vue

@@ -8,15 +8,10 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     width="70%"
-    :fullscreen="fullscreen"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -264,7 +259,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import fileMain from '@/components/addDoc/index';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import changeList from './changeList.vue';
 
   export default {
@@ -273,7 +267,6 @@
       inventoryTabledetail,
       bpmDetail,
       fileMain,
-      modalTitle,
       changeList
     },
     data() {

+ 2 - 8
src/views/contractManage/contractBook/components/detailDialog1.vue

@@ -10,13 +10,9 @@
     width="70%"
     :fullscreen="fullscreen"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -261,7 +257,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import fileMain from '@/components/addDoc/index';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import changeList from './changeList.vue';
 
   export default {
@@ -270,7 +265,6 @@
       inventoryTabledetail,
       bpmDetail,
       fileMain,
-      modalTitle,
       changeList
     },
     data() {

+ 2 - 0
src/views/contractManage/contractBook/components/generateContractsDialog.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="80%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <inquiryTable
       :radio="form.winnerId"

+ 2 - 0
src/views/contractManage/contractBook/components/generateContractsDialog1.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="80%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <inquiryTable
       :radio="form.winnerId"

+ 3 - 9
src/views/contractManage/contractChange/components/addOrEditDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="1000px"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch_left" v-if="dialogType=='view'">
       <ul>
         <li
@@ -96,7 +91,6 @@
   import fileMain from '@/components/addDoc/index.vue';
   import contractListDialog from '@/views/saleManage/saleOrder/components/contractListDialog.vue';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
 
   const defForm = {
     name: '',
@@ -109,7 +103,7 @@
     contractId: ''
   };
   export default {
-    components: { fileMain, contractListDialog,bpmDetail,modalTitle },
+    components: { fileMain, contractListDialog,bpmDetail },
     computed: {
       ...mapGetters(['user'])
     },

+ 3 - 9
src/views/financialManage/feeManage/feeApplication/addOrEditDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="60%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       class="el-form-box"
@@ -161,7 +156,7 @@
   import { contactDetail } from '@/api/saleManage/contact';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
+
 
   export default {
     name: 'add-or-edit-dialog',
@@ -172,7 +167,6 @@
       personSelect,
       feeRelatedInfoTable,
       customerListDialog,
-      modalTitle
     },
     props: {
       addOrEditDialogFlag: {

+ 4 - 9
src/views/financialManage/feeManage/feeApplication/detailDialog.vue

@@ -6,14 +6,9 @@
     :title="title"
     :close-on-click-modal="false"
     width="60%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch_left">
       <ul>
         <li
@@ -194,7 +189,7 @@ import {getFeeApplyInfoAPI} from "@/api/financialManage/fee-manage/fee-applicati
 import feeRelatedInfoTable from "@/views/financialManage/components/feeRelatedInfoTable.vue";
 import personSelect from "@/components/CommomSelect/person-select.vue";
 import fileMain from "@/components/addDoc/index.vue";
-import modalTitle from '@/BIZComponents/modalTitle.vue';
+
 
 export default {
   mixins: [dictMixins],
@@ -204,7 +199,7 @@ export default {
     personSelect,
     feeRelatedInfoTable,
     fileUpload,
-    bpmDetail,modalTitle
+    bpmDetail
   },
   data() {
     return {

+ 2 - 0
src/views/financialManage/invoiceManage/components/accountInfoDialog.vue

@@ -7,6 +7,8 @@
     append-to-body
     :close-on-click-modal="false"
     width="85%"
+    :maxable="true"
+    :resizable="true"
     :before-close="cancel">
     <!-- 销售对账单信息   -->
     <saleAccountTable v-if="accountType==1" ref="inventoryTableref"

+ 2 - 9
src/views/financialManage/invoiceManage/components/addOrEditDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :rules="rules"
@@ -352,7 +347,6 @@
   import { getSaleOrderDetail } from '@/api/saleManage/saleorder';
   import { getDetail } from '@/api/contractManage/contractBook';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import accountStatementDialog from './accountstatementDialog.vue';
   import contractListDialog from '@/views/saleManage/saleOrder/components/contractListDialog.vue';
   import purchasinOrderListDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/orderListDialog.vue'; //采购订单
@@ -403,7 +397,6 @@
       fileUpload,
       personSelect,
       tableInfo,
-      modalTitle,
       accountStatementDialog,
       contractListDialog,
       purchasinOrderListDialog,

+ 2 - 9
src/views/financialManage/invoiceManage/components/detailDialog.vue

@@ -8,14 +8,9 @@
     append-to-body
     width="60%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch_left">
       <ul>
         <li
@@ -225,7 +220,6 @@
   import personSelect from '@/components/CommomSelect/person-select.vue';
   import tableInfo from '@/views/financialManage/invoiceManage/components/tableInfo.vue';
   import { invoiceApplyInfoAPI } from '@/api/financialManage/invoiceManage';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import fileMain from '@/components/addDoc/index.vue';
   export default {
     mixins: [dictMixins],
@@ -235,7 +229,6 @@
       personSelect,
       feeRelatedInfoTable,
       bpmDetail,
-      modalTitle,
       fileMain
     },
     data() {

+ 2 - 0
src/views/financialManage/payableManage/components/detailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
   <div>
     <div class="switch_left">

+ 2 - 0
src/views/financialManage/payableManage/components/detailDialog1.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
   <div>
     <div class="switch_left">

+ 2 - 0
src/views/financialManage/payableManage/components/paymentDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <info-table ref="feeRelatedInfoTable" v-if="form.id" :form.sync="form"></info-table>
     <div slot="footer">

+ 2 - 0
src/views/financialManage/payableManage/components/paymentListDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <!-- 数据表格 -->

+ 2 - 0
src/views/financialManage/receivableManage/components/collectionDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <info-table ref="feeRelatedInfoTable" v-if="form.id" :form.sync="form"></info-table>
     <div slot="footer">

+ 2 - 0
src/views/financialManage/receivableManage/components/detailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch_left">
       <ul>

+ 2 - 0
src/views/financialManage/receivableManage/components/detailDialog1.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch_left">
       <ul>

+ 2 - 0
src/views/financialManage/receivableManage/components/receivableDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="60%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <!-- 数据表格 -->

+ 2 - 0
src/views/financialManage/settlementAccount/components/addOrEditDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="25%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :rules="rules" class="el-form-box" :model="form" label-width="90px">
       <headerTitle title="基本信息"></headerTitle>

+ 2 - 9
src/views/marketManagem/components/addOrEditDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="80%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :rules="rules"
@@ -319,7 +314,6 @@
   import { save, getById } from '@/api/marketManagem/index';
   import { mapGetters } from 'vuex';
 
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { contactDetail } from '@/api/saleManage/contact';
 
   import deptSelect from '@/components/CommomSelect/dept-select.vue';
@@ -355,7 +349,6 @@
       souvenirList,
       conferenceList,
       companyList,
-      modalTitle,
       putUpList,
       visitList,
       staffSelection,

+ 2 - 0
src/views/marketManagem/components/userList.vue

@@ -7,6 +7,8 @@
     custom-class="ele-dialog-form"
     append-to-body
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <ele-split-layout
       width="210px"

+ 2 - 9
src/views/marketManagem/components/viewDialog.vue

@@ -6,14 +6,9 @@
     :append-to-body="false"
     :close-on-click-modal="false"
     width="80%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        title="详情"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -195,7 +190,6 @@
   };
   import { getById } from '@/api/marketManagem/index';
 
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 
   import dictMixins from '@/mixins/dictMixins';
@@ -221,7 +215,6 @@
       souvenirList,
       conferenceList,
       companyList,
-      modalTitle,
       putUpList,
       visitList,
       bpmDetail

+ 2 - 0
src/views/purchasingManage/inquiryManage/components/detailDialog.vue

@@ -9,6 +9,8 @@
     :model="isModal"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch">
       <div class="switch_left">

+ 2 - 0
src/views/purchasingManage/inquiryManage/components/generateContractsDialog.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <inquiryTable
       :radio="form.winnerId"

+ 2 - 0
src/views/purchasingManage/producerManage/components/addContactDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">
       <el-tab-pane label="基本信息" :name="1">

+ 478 - 371
src/views/purchasingManage/producerManage/components/certificateQualificationsDialog.vue

@@ -1,25 +1,41 @@
 <template>
-  <ele-modal custom-class="ele-dialog-form long-dialog-form"
-             :centered="true" :visible.sync="certificateQualificationsDialogFlag" :title="title"
-             append-to-body
-             :close-on-click-modal="false" width="70%" :before-close="cancel">
+  <ele-modal
+    custom-class="ele-dialog-form long-dialog-form"
+    :centered="true"
+    :visible.sync="certificateQualificationsDialogFlag"
+    :title="title"
+    append-to-body
+    :maxable="true"
+    :resizable="true"
+    :close-on-click-modal="false"
+    width="70%"
+    :before-close="cancel"
+  >
     <el-tabs v-model="activeName" type="card">
       <el-tab-pane label="证书资质" name="QC">
         <el-form ref="form" :model="form" class="el-form-box">
-          <headerTitle title="基本信息"/>
+          <headerTitle title="基本信息" />
           <el-row :gutter="20">
             <el-col :span="12">
-              <el-form-item label-width="50px" label="名称" prop="name"
-                            :rules=" {required: true, message: '请输入',trigger: 'blur' }">
-                <el-input v-model="form.name" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                label-width="50px"
+                label="名称"
+                prop="name"
+                :rules="{ required: true, message: '请输入', trigger: 'blur' }"
+              >
+                <el-input
+                  v-model="form.name"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="有效时间:" prop="date" label-width="90px">
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="form.date"
-                  style="width: 100%;"
+                  style="width: 100%"
                   type="daterange"
                   value-format="yyyy-MM-dd"
                   range-separator="至"
@@ -33,179 +49,251 @@
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label-width="50px" label="备注">
-                <el-input type="textarea" v-model="form.remark" :disabled="type=='view'" clearable></el-input>
+                <el-input
+                  type="textarea"
+                  v-model="form.remark"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="附件:" prop="accessory" label-width="90px">
                 <fileUpload
-                  v-if="type!=='view'"
+                  v-if="type !== 'view'"
                   v-model="form.accessory"
                   module="main"
                   :showLib="false"
-                  :limit="10"/>
+                  :limit="10"
+                />
                 <div v-else>
                   <el-link
                     v-for="link in form.accessory"
                     :key="link.id"
                     type="primary"
                     :underline="false"
-                    @click="downloadFile(link)">
+                    @click="downloadFile(link)"
+                  >
                     {{ link.name }}
                   </el-link>
                 </div>
               </el-form-item>
             </el-col>
           </el-row>
-          <headerTitle title="资质信息"/>
-          <ele-pro-table ref="linkTable" :columns="columns" :datasource="form.detailsList"  height="300px"
-                         :need-page="false">
+          <headerTitle title="资质信息" />
+          <ele-pro-table
+            ref="linkTable"
+            :columns="columns"
+            :datasource="form.detailsList"
+            height="300px"
+            :need-page="false"
+          >
             <!-- 表头工具栏 -->
             <template v-slot:toolbar>
-
-              <el-button v-if="type!=='view'" type="primary" @click="handleAdd">添加</el-button>
+              <el-button
+                v-if="type !== 'view'"
+                type="primary"
+                @click="handleAdd"
+                >添加</el-button
+              >
             </template>
             <template v-slot:name="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.name'" :rules="{
-            required: true,
-            message: '',
-            trigger: 'change'
-          }">
-                <el-select v-if="type!=='view'" v-model="scope.row.name" clearable
-                           @change="(val)=>handleChangeType(val,scope.row)">
-                  <el-option :disabled="disabledToType(scope.row).includes(item.dictCode)"
-                             v-for="item in dictList" :value="item.dictCode"
-                             :label="item.dictValue"></el-option>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.name'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: 'change'
+                }"
+              >
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.name"
+                  clearable
+                  @change="(val) => handleChangeType(val, scope.row)"
+                >
+                  <el-option
+                    :disabled="
+                      disabledToType(scope.row).includes(item.dictCode)
+                    "
+                    v-for="item in dictList"
+                    :value="item.dictCode"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/生产厂家资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ getLabelName(dictList,scope.row.name)  }}</span>
+                <span v-else>{{ getLabelName(dictList, scope.row.name) }}</span>
               </el-form-item>
-
             </template>
             <template v-slot:code="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.code'" :rules="{
-            required: true,
-            message: '',
-            trigger: 'blur'
-          }">
-                <el-input v-model="scope.row.code" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.code'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: 'blur'
+                }"
+              >
+                <el-input
+                  v-model="scope.row.code"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
-
             </template>
             <template v-slot:businessRange="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.businessRange'">
-                <el-input type="textarea" v-model="scope.row.businessRange" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.businessRange'"
+              >
+                <el-input
+                  type="textarea"
+                  v-model="scope.row.businessRange"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </template>
             <template v-slot:startTime="scope">
-              <el-form-item inline-message :prop="'detailsList.' + scope.$index + '.startTime'" :rules="{
-            required: false,
-            message: '',
-            trigger: 'change'
-
-          }">
+              <el-form-item
+                inline-message
+                :prop="'detailsList.' + scope.$index + '.startTime'"
+                :rules="{
+                  required: false,
+                  message: '',
+                  trigger: 'change'
+                }"
+              >
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="scope.row.startTime"
                   type="date"
                   style="width: 100%"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期">
+                  placeholder="选择日期"
+                >
                 </el-date-picker>
               </el-form-item>
-
             </template>
             <template v-slot:endTime="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.endTime'"
-                            :rules="{
-            required: false,
-            validator: validateEndDate(scope.row,scope.$index),
-            trigger: ['blur','change']
-          }">
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.endTime'"
+                :rules="{
+                  required: false,
+                  validator: validateEndDate(scope.row, scope.$index),
+                  trigger: ['blur', 'change']
+                }"
+              >
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="scope.row.endTime"
                   type="date"
                   style="width: 100%"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期">
+                  placeholder="选择日期"
+                >
                 </el-date-picker>
               </el-form-item>
-
             </template>
             <template v-slot:noticePersonName="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.noticePersonName'" :rules="{
-            required: true,
-            message: '',
-            trigger: ['blur','change']
-
-          }">
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.noticePersonName'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: ['blur', 'change']
+                }"
+              >
                 <el-input
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   @click.native="openStaffSelection(scope.$index)"
                   v-model="scope.row.noticePersonName"
                   placeholder="请选择"
                 ></el-input>
               </el-form-item>
-
             </template>
             <template v-slot:accessory="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.accessory'" :rules="{
-            required: true,
-            message: '',
-            trigger: ['change','blur']
-          }">
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.accessory'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: ['change', 'blur']
+                }"
+              >
                 <fileUpload
-                  v-if="type!=='view'"
+                  v-if="type !== 'view'"
                   v-model="scope.row.accessory"
                   module="main"
                   :showLib="false"
-                  :limit="10"/>
+                  :limit="10"
+                />
                 <div v-else>
                   <el-link
                     v-for="link in scope.row.accessory"
                     :key="link.id"
                     type="primary"
                     :underline="false"
-                    @click="downloadFile(link)">
+                    @click="downloadFile(link)"
+                  >
                     {{ link.name }}
                   </el-link>
                 </div>
               </el-form-item>
-
             </template>
             <template v-slot:type="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.type'">
-                <el-select v-if="type!=='view'" v-model="scope.row.type" clearable>
-                  <el-option v-for="item in typeList" :value="item.dictCode"
-                             :label="item.dictValue"></el-option>
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.type"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in typeList"
+                    :value="item.dictCode"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/生产厂家资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ getLabelName(typeList,scope.row.type)  }}</span>
+                <span v-else>{{ getLabelName(typeList, scope.row.type) }}</span>
               </el-form-item>
-
             </template>
             <template v-slot:level="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.level'">
-                <el-select v-if="type!=='view'" v-model="scope.row.level" clearable>
-                  <el-option v-for="item in levelOptions" :value="item.dictCode"
-                             :label="item.dictValue"></el-option>
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.level"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in levelOptions"
+                    :value="item.dictCode"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/生产厂家资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ getLabelName(levelOptions,scope.row.type)  }}</span>
+                <span v-else>{{
+                  getLabelName(levelOptions, scope.row.type)
+                }}</span>
               </el-form-item>
             </template>
             <template v-slot:remark="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.remark'">
-                <el-input type="textarea" :disabled="type=='view'" v-model="scope.row.remark"></el-input>
+                <el-input
+                  type="textarea"
+                  :disabled="type == 'view'"
+                  v-model="scope.row.remark"
+                ></el-input>
               </el-form-item>
             </template>
             <template v-slot:status="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.status'">
-                <el-tag v-if="scope.row.status" :type="statusTagTypeList[scope.row.status]">
+                <el-tag
+                  v-if="scope.row.status"
+                  :type="statusTagTypeList[scope.row.status]"
+                >
                   {{ statusList[scope.row.status] }}
                 </el-tag>
               </el-form-item>
@@ -221,7 +309,7 @@
               >
                 <template v-slot:reference>
                   <el-link
-                    v-if="type!=='view'"
+                    v-if="type !== 'view'"
                     type="danger"
                     :underline="false"
                     icon="el-icon-delete"
@@ -231,317 +319,336 @@
                 </template>
               </el-popconfirm>
             </template>
-
           </ele-pro-table>
-
         </el-form>
-
       </el-tab-pane>
-      <el-tab-pane v-if="form.processInstanceId" label="流程详情" name="processInstance">
+      <el-tab-pane
+        v-if="form.processInstanceId"
+        label="流程详情"
+        name="processInstance"
+      >
         <bpmDetail :id="form.processInstanceId"></bpmDetail>
       </el-tab-pane>
     </el-tabs>
-    <div slot="footer" v-if="activeName=='QC'">
-      <el-button v-if="type!=='view'" type="primary" @click="handleSave(false)">保存</el-button>
-      <el-button v-if="type!=='view'" type="primary" plan @click="handleSave(true)">提交</el-button>
+    <div slot="footer" v-if="activeName == 'QC'">
+      <el-button
+        v-if="type !== 'view'"
+        type="primary"
+        @click="handleSave(false)"
+        >保存</el-button
+      >
+      <el-button
+        v-if="type !== 'view'"
+        type="primary"
+        plan
+        @click="handleSave(true)"
+        >提交</el-button
+      >
       <el-button @click="cancel">返回</el-button>
     </div>
     <staffSelection
       ref="staffSelection"
       @confirm="confirmStaffSelection"
     ></staffSelection>
-
   </ele-modal>
 </template>
 <script>
-import FileUpload from "@/components/upload/fileUpload.vue";
-import staffSelection from "@/components/staffSelection/staffSelection.vue";
-import {
-  contactQcPackDetailAPI,
-  contactQcPackSaveAPI,
-  contactQcPackUpdateAPI,
-  contactQcSubmit
-} from "@/api/saleManage/contact";
-import {getFile} from "@/api/system/file";
-import bpmDetail from "@/views/bpm/processInstance/detail.vue";
-import {mapActions, mapGetters} from "vuex";
-import dictEnum from "@/enum/dict";
+  import FileUpload from '@/components/upload/fileUpload.vue';
+  import staffSelection from '@/components/staffSelection/staffSelection.vue';
+  import {
+    contactQcPackDetailAPI,
+    contactQcPackSaveAPI,
+    contactQcPackUpdateAPI,
+    contactQcSubmit
+  } from '@/api/saleManage/contact';
+  import { getFile } from '@/api/system/file';
+  import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+  import { mapActions, mapGetters } from 'vuex';
+  import dictEnum from '@/enum/dict';
 
-export default {
-  name: "certificateQualificationsDialog",
-  components: {bpmDetail, FileUpload, staffSelection},
-  props: {
-    certificateQualificationsDialogFlag: Boolean,
-    contactInfo: Object,
-    typeInfo: String
-  },
-  data() {
-    return {
-      title: '',
-      type: '',
-      activeName: 'QC',
-      defaultData: {
-        accessory: [],
-        name: "",
-        noticePersonId: "",
-        noticePersonName: "",
-        num: "",
-        remark: "",
-        businessRange: "",
-        type: "",
-        endTime: "",
-        startTime: ""
-      },
-      form: {
-        accessory:[],
-        detailsList: [],
-        relationName: '',
-        name: '',
-        date: [],
-        remark: '',
-
-      },
-      curIndex: null,
-      levelOptions: [
-        {
-          dictValue: '初级',
-          dictCode: '1'
-        },
-        {
-          dictValue: '中级',
-          dictCode: '2'
-        },
-        {
-          dictValue: '高级',
-          dictCode: '3'
-        }
-      ],
-      statusList: {
-        10: '有效',
-        20: '无效',
-        30: '已过期',
-      },
-      statusTagTypeList: {
-        10: 'success',
-        20: 'info',
-        30: 'danger',
-      },
-    }
-  },
-  computed: {
-    ...mapGetters(['dict']),
-    dictList() {
-      return this.dict[dictEnum['客户/生产厂家资质类型']] || [];
-    },
-    typeList() {
-      return this.dict[dictEnum['工种类型']] || [];
+  export default {
+    name: 'certificateQualificationsDialog',
+    components: { bpmDetail, FileUpload, staffSelection },
+    props: {
+      certificateQualificationsDialogFlag: Boolean,
+      contactInfo: Object,
+      typeInfo: String
     },
-    columns() {
-      return [
-        {
-          type: 'index',
-          width: 55,
-          align: 'center'
-        },
-        {
-          label: '名称',
-          prop: 'name',
-          slot: 'name',
-          headerSlot: 'isRequired',
-          minWidth: 180,
-          align: 'center'
-        },
-        {
-          label: '编号',
-          prop: 'code',
-          slot: 'code',
-          headerSlot: 'isRequired',
-          minWidth: 120,
-          align: 'center'
-        },
-        {
-          label: '许可/经营范围',
-          prop: 'businessRange',
-          slot: 'businessRange',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '有效期起始日期',
-          prop: 'startTime',
-          slot: 'startTime',
-          // headerSlot: 'isRequired',
-          minWidth: 160,
-          align: 'center'
-        },
-        {
-          label: '有效期截止日期',
-          prop: 'endTime',
-          slot: 'endTime',
-          // headerSlot: 'isRequired',
-          minWidth: 160,
-          align: 'center'
-        },
-        {
-          label: '通知人',
-          prop: 'noticePersonName',
-          slot: 'noticePersonName',
-          headerSlot: 'isRequired',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '附件',
-          prop: 'accessory',
-          slot: 'accessory',
-          headerSlot: 'isRequired',
-          minWidth: 140,
+    data() {
+      return {
+        title: '',
+        type: '',
+        activeName: 'QC',
+        defaultData: {
+          accessory: [],
+          name: '',
+          noticePersonId: '',
+          noticePersonName: '',
+          num: '',
+          remark: '',
+          businessRange: '',
+          type: '',
+          endTime: '',
+          startTime: ''
         },
-        {
-          label: '等级',
-          prop: 'level',
-          slot: 'level',
-          minWidth: 140,
-          align: 'center'
+        form: {
+          accessory: [],
+          detailsList: [],
+          relationName: '',
+          name: '',
+          date: [],
+          remark: ''
         },
-        {
-          label: '分类',
-          prop: 'type',
-          slot: 'type',
-          minWidth: 140,
-          align: 'center'
+        curIndex: null,
+        levelOptions: [
+          {
+            dictValue: '初级',
+            dictCode: '1'
+          },
+          {
+            dictValue: '中级',
+            dictCode: '2'
+          },
+          {
+            dictValue: '高级',
+            dictCode: '3'
+          }
+        ],
+        statusList: {
+          10: '有效',
+          20: '无效',
+          30: '已过期'
         },
-        {
-          label: '备注',
-          prop: 'remark',
-          slot: 'remark',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '状态',
-          prop: 'status',
-          slot: 'status',
-          align: 'center',
-        },
-        {
-          action: 'action',
-          slot: 'action',
-          label: '操作',
-          align: 'center',
-          fixed:'right'
+        statusTagTypeList: {
+          10: 'success',
+          20: 'info',
+          30: 'danger'
         }
-      ]
+      };
     },
-    disabledToType() {
-      return (row) => {
-        let list = this.form.detailsList.map(item => item.name)
-        let dictCodeList = this.dictList.map(item => item.dictCode)
-        let intersectionList = list.filter((v) => dictCodeList.indexOf(v) > -1)
-        intersectionList = intersectionList.filter(v => row.name !== v)
-        return intersectionList
+    computed: {
+      ...mapGetters(['dict']),
+      dictList() {
+        return this.dict[dictEnum['客户/生产厂家资质类型']] || [];
+      },
+      typeList() {
+        return this.dict[dictEnum['工种类型']] || [];
+      },
+      columns() {
+        return [
+          {
+            type: 'index',
+            width: 55,
+            align: 'center'
+          },
+          {
+            label: '名称',
+            prop: 'name',
+            slot: 'name',
+            headerSlot: 'isRequired',
+            minWidth: 180,
+            align: 'center'
+          },
+          {
+            label: '编号',
+            prop: 'code',
+            slot: 'code',
+            headerSlot: 'isRequired',
+            minWidth: 120,
+            align: 'center'
+          },
+          {
+            label: '许可/经营范围',
+            prop: 'businessRange',
+            slot: 'businessRange',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '有效期起始日期',
+            prop: 'startTime',
+            slot: 'startTime',
+            // headerSlot: 'isRequired',
+            minWidth: 160,
+            align: 'center'
+          },
+          {
+            label: '有效期截止日期',
+            prop: 'endTime',
+            slot: 'endTime',
+            // headerSlot: 'isRequired',
+            minWidth: 160,
+            align: 'center'
+          },
+          {
+            label: '通知人',
+            prop: 'noticePersonName',
+            slot: 'noticePersonName',
+            headerSlot: 'isRequired',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '附件',
+            prop: 'accessory',
+            slot: 'accessory',
+            headerSlot: 'isRequired',
+            minWidth: 140
+          },
+          {
+            label: '等级',
+            prop: 'level',
+            slot: 'level',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '分类',
+            prop: 'type',
+            slot: 'type',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '备注',
+            prop: 'remark',
+            slot: 'remark',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '状态',
+            prop: 'status',
+            slot: 'status',
+            align: 'center'
+          },
+          {
+            action: 'action',
+            slot: 'action',
+            label: '操作',
+            align: 'center',
+            fixed: 'right'
+          }
+        ];
+      },
+      disabledToType() {
+        return (row) => {
+          let list = this.form.detailsList.map((item) => item.name);
+          let dictCodeList = this.dictList.map((item) => item.dictCode);
+          let intersectionList = list.filter(
+            (v) => dictCodeList.indexOf(v) > -1
+          );
+          intersectionList = intersectionList.filter((v) => row.name !== v);
+          return intersectionList;
+        };
       }
     },
-  },
-  created() {
-    this.requestDict('客户/生产厂家资质类型');
-    this.requestDict('工种类型');
-  },
-  methods: {
-    ...mapActions('dict', ['requestDict']),
-    getLabelName(arr,id){
-      if(!id) return ''
-      return arr.find(item=>item.dictCode == id)?.dictValue
-    },
-    //删除资质
-    handleRemove(index) {
-      this.form.detailsList.splice(index, 1)
+    created() {
+      this.requestDict('客户/生产厂家资质类型');
+      this.requestDict('工种类型');
     },
-    //结束日期验证
-    validateEndDate(row, index) {
-      return (rule, value, callback) => {
-        //new Error('')
-        if (!value) return callback()
-        if (
-          row.endTime &&
-          row.startTime &&
-          value < row.startTime
-        ) {
-          callback(new Error('截止日期不能小于起始日期'))
-        } else {
-          callback()
+    methods: {
+      ...mapActions('dict', ['requestDict']),
+      getLabelName(arr, id) {
+        if (!id) return '';
+        return arr.find((item) => item.dictCode == id)?.dictValue;
+      },
+      //删除资质
+      handleRemove(index) {
+        this.form.detailsList.splice(index, 1);
+      },
+      //结束日期验证
+      validateEndDate(row, index) {
+        return (rule, value, callback) => {
+          //new Error('')
+          if (!value) return callback();
+          if (row.endTime && row.startTime && value < row.startTime) {
+            callback(new Error('截止日期不能小于起始日期'));
+          } else {
+            callback();
+          }
+        };
+      },
+      //页面初始化
+      init(type, row = {}) {
+        this.title =
+          type == 'add' ? '新增' : type == 'update' ? '修改' : '详情';
+        this.type = type;
+        if (type !== 'add') {
+          this.getCertificateInfo(row);
         }
+      },
+      async getCertificateInfo(row) {
+        this.form = await contactQcPackDetailAPI(row.id);
+        this.form.date = [this.form.startTime, this.form.endTime];
+      },
+      //打开选择负责人弹窗
+      openStaffSelection(index) {
+        this.curIndex = index;
+        this.$refs.staffSelection.open([]);
+      },
+      //选择负责人回调
+      confirmStaffSelection(data) {
+        this.form.detailsList[this.curIndex].noticePersonName = data
+          .map((item) => item.name)
+          .toString();
+        this.form.detailsList[this.curIndex].noticePersonId = data
+          .map((item) => item.id)
+          .toString();
+      },
+      //新增
+      handleAdd() {
+        this.form.detailsList.push({ ...this.defaultData });
+      },
+      //修改资质证书
+      handleChangeType(val, row) {
+        if (!val) return (row.name = '');
+        row.name =
+          this.dictList.find((i) => i.dictCode == val)?.dictValue || '';
+      },
+      downloadFile(file) {
+        getFile({ objectName: file.storePath }, file.name);
+      },
+      //保存/提交
+      handleSave(isSub) {
+        let msg =
+          this.typeInfo == '1'
+            ? '请保存客户信息后新增资质'
+            : '请保存生产厂家信息后新增资质';
+        if (!this.contactInfo.id) return this.$message.success(msg);
+        this.$refs.form.validate(async (valid) => {
+          console.log(1111, valid);
+          if (!valid) return this.$message.warning('有必填项未填写,请检查');
+          if (!this.form.detailsList.length)
+            return this.$message.warning('至少保存一条资质信息');
+          this.form.certificationType = this.typeInfo;
+          this.form.relationId = this.contactInfo.id;
+          this.form.relationName = this.contactInfo.name;
+          this.form.startTime = this.form.date[0];
+          this.form.endTime = this.form.date[1];
+          let api =
+            this.type == 'add' ? contactQcPackSaveAPI : contactQcPackUpdateAPI;
+          let id = await api(this.form);
+          if (isSub) {
+            await contactQcSubmit({
+              businessId: id,
+              certificationType: this.typeInfo
+            });
+          }
+          this.$message.success('保存成功');
+          this.$emit('reload');
+          this.cancel();
+        });
+      },
+      //关闭弹窗
+      cancel() {
+        this.$emit('update:certificateQualificationsDialogFlag', false);
       }
-    },
-    //页面初始化
-    init(type, row = {}) {
-      this.title = type == 'add' ? '新增' : type == 'update' ? '修改' : '详情'
-      this.type = type
-      if (type !== 'add') {
-        this.getCertificateInfo(row)
-      }
-    },
-    async getCertificateInfo(row) {
-      this.form = await contactQcPackDetailAPI(row.id)
-      this.form.date = [this.form.startTime, this.form.endTime]
-    },
-    //打开选择负责人弹窗
-    openStaffSelection(index) {
-      this.curIndex = index
-      this.$refs.staffSelection.open([]);
-    },
-    //选择负责人回调
-    confirmStaffSelection(data) {
-      this.form.detailsList[this.curIndex].noticePersonName = data.map((item) => item.name).toString();
-      this.form.detailsList[this.curIndex].noticePersonId = data.map((item) => item.id).toString();
-    },
-    //新增
-    handleAdd() {
-      this.form.detailsList.push({...this.defaultData})
-    },
-    //修改资质证书
-    handleChangeType(val, row) {
-      if (!val) return row.name = ''
-      row.name = this.dictList.find(i => i.dictCode == val)?.dictValue || ''
-
-    },
-    downloadFile(file) {
-      getFile({objectName: file.storePath}, file.name);
-    },
-    //保存/提交
-    handleSave(isSub) {
-      let msg = this.typeInfo == '1' ? '请保存客户信息后新增资质':'请保存生产厂家信息后新增资质'
-      if (!this.contactInfo.id) return this.$message.success(msg)
-      this.$refs.form.validate(async (valid) => {
-        console.log(1111,valid);
-        if (!valid) return this.$message.warning('有必填项未填写,请检查')
-        if (!this.form.detailsList.length) return this.$message.warning('至少保存一条资质信息')
-        this.form.certificationType = this.typeInfo
-        this.form.relationId = this.contactInfo.id
-        this.form.relationName = this.contactInfo.name
-        this.form.startTime = this.form.date[0]
-        this.form.endTime = this.form.date[1]
-        let api = this.type == 'add' ? contactQcPackSaveAPI : contactQcPackUpdateAPI
-        let id = await api(this.form)
-        if (isSub) {
-          await contactQcSubmit({businessId: id, certificationType: this.typeInfo})
-        }
-        this.$message.success('保存成功')
-        this.$emit('reload')
-        this.cancel()
-      })
-
-    },
-    //关闭弹窗
-    cancel() {
-      this.$emit('update:certificateQualificationsDialogFlag', false)
-    },
-  }
-
-}
+    }
+  };
 </script>
 <style scoped lang="scss">
-:deep.el-form-item {
-  margin-bottom: 0
-}
+  :deep.el-form-item {
+    margin-bottom: 0;
+  }
 </style>

+ 2 - 0
src/views/purchasingManage/producerManage/components/contactDetailDialog.vue

@@ -9,6 +9,8 @@
     append-to-body
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">

+ 2 - 9
src/views/purchasingManage/purchaseNeedManage/components/addDialog.vue

@@ -7,15 +7,10 @@
     :title="title"
     :close-on-click-modal="false"
     width="80%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :model="form"
@@ -218,7 +213,6 @@
   import orderListDialog from '@/views/saleManage/saleOrder/invoice/components/orderListDialog.vue';
   import { getTableList as getSaleOrderListAPI } from '@/api/saleManage/saleorder';
   import fileMain from '@/components/addDoc/index';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { getSaleOrderDetail } from '@/api/saleManage/saleorder';
   import { requirementSourceType } from '@/enum/dict.js';
@@ -239,7 +233,6 @@
       parentList,
       personSelect,
       fileMain,
-      modalTitle
     },
     data() {
       let formDef = {

+ 2 - 9
src/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue

@@ -8,15 +8,10 @@
     :close-on-click-modal="false"
     width="80%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     :modal="isModal"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -177,7 +172,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import timeDialog from '@/components/timeDialog/index.vue';
   import fileMain from '@/components/addDoc/index';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { getByCode } from '@/api/system/dictionary-data';
   import { lbjtList } from '@/enum/dict.js';
 
@@ -192,7 +186,6 @@
       bpmDetail,
       timeDialog,
       fileMain,
-      modalTitle
     },
     data() {
       return {

+ 3 - 9
src/views/purchasingManage/purchaseOrder/accountstatement/components/addAccountDialog.vue

@@ -6,15 +6,11 @@
     :title="title"
     :close-on-click-modal="false"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     :before-close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <!--采购表单表单-->
     <purchase-form
       @handleSearch="handleSearch"
@@ -84,7 +80,6 @@
 </template>
 
 <script>
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
   import InventoryTable from './inventoryTable.vue';
@@ -104,7 +99,6 @@
       processSubmitDialog,
       InventoryTable,
       purchaseForm,
-      modalTitle,
       recorpayTableList
     },
     data() {

+ 4 - 10
src/views/purchasingManage/purchaseOrder/accountstatement/components/detailDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-card shadow="never">
       <div class="switch">
         <div class="switch_left">
@@ -91,7 +86,6 @@
   import InventoryTable from './inventoryTable.vue';
   import { infoAccountStatementAPI } from '@/api/saleManage/accountstatement';
   import purchaseForm from './purchaseForm.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
   export default {
@@ -99,8 +93,8 @@
     components: {
       purchaseForm,
       InventoryTable,
-      bpmDetail,
-      modalTitle,recorpayTableList
+      bpmDetail
+      ,recorpayTableList
     },
     data() {
       return {

+ 3 - 9
src/views/purchasingManage/purchaseOrder/components/addDialog.vue

@@ -8,14 +8,10 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <el-form
       ref="form"
       :model="form"
@@ -506,7 +502,6 @@
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import purchaseNeedList from '@/views/purchasingManage/purchasePlanManage/components/purchaseNeed-list.vue';
   import inquiryList from './inquiryList.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import {
     contactDetail,
     updateRelationStatus
@@ -529,7 +524,6 @@
       parentList,
       personSelect,
       supplierGoodsListDialog,
-      modalTitle,
       planTableList
     },
     data() {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <ele-pro-table
       ref="table"

+ 2 - 9
src/views/purchasingManage/purchaseOrder/components/detailDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -450,7 +445,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import fileMain from '@/components/addDoc/index.vue';
   import billDetailDialog from '@/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { orderSourceType, outsourceSceneList,lbjtList } from '@/enum/dict';
 
   export default {
@@ -462,7 +456,6 @@
       returnGoodsList,
       accountstatementList,
       bpmDetail,
-      modalTitle
     },
     data() {
       return {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/components/generateOrderDialog.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <inquiryTable
       :radio="form.winnerId"

+ 31 - 41
src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue

@@ -126,7 +126,7 @@
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.taxRate'"
         >
-          <el-input v-model="scope.row.taxRate">
+          <el-input v-model="scope.row.taxRate" @input="getNotaxSinglePrice">
             <template slot="append">%</template>
           </el-input>
         </el-form-item>
@@ -141,13 +141,6 @@
             trigger: 'blur'
           }"
         >
-          <!--  :prop="'datasource.' + scope.$index + '.totalCount'"
-                        :rules="{
-                          required: true,
-                          pattern: positiveIntegerReg,
-                          message: '请输入数字',
-                          trigger: 'blur'
-                        }"           -->
           <el-input
             :disabled="isContractId"
             v-model="scope.row.totalCount"
@@ -253,7 +246,7 @@
         >
           <el-input
             v-model="scope.row.measuringUnit"
-            :disabled="isContractId&&!!scope.row.productCode"
+            :disabled="isContractId && !!scope.row.productCode"
             placeholder="请输入"
           ></el-input>
         </el-form-item>
@@ -292,7 +285,7 @@
           </el-input>
         </el-form-item>
       </template>
-      <template v-slot:notaxSinglePrice="scope">
+      <!-- <template v-slot:notaxSinglePrice="scope">
         <el-form-item
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
@@ -305,7 +298,7 @@
             <template slot="append">元</template>
           </el-input>
         </el-form-item>
-      </template>
+      </template> -->
 
       <template v-slot:singleWeight="scope">
         <el-form-item
@@ -371,25 +364,6 @@
             v-model="scope.row.technicalDrawings"
             :type="isContractId ? 'view' : ''"
           ></fileMain>
-          <!--            <fileUpload-->
-          <!--              v-if="!isContractId"-->
-          <!--              v-model="scope.row.technicalDrawings"-->
-          <!--              module="main"-->
-          <!--              :showLib="false"-->
-          <!--              :limit="5"-->
-          <!--            />-->
-          <!--            <div v-else v-if="scope.row.technicalDrawings && scope.row.technicalDrawings?.length">-->
-          <!--              <el-link-->
-          <!--                v-for="link in scope.row.technicalDrawings"-->
-          <!--                :key="link.id"-->
-          <!--                type="primary"-->
-          <!--                :underline="false"-->
-          <!--                @click="downloadFile(link)"-->
-          <!--              >-->
-          <!--                {{ link.name }}-->
-          <!--              </el-link-->
-          <!--              >-->
-          <!--            </div>-->
         </el-form-item>
       </template>
       <template v-slot:guaranteePeriodDeadline="scope">
@@ -528,7 +502,7 @@
   import billDetailDialog from './billDetailDialog.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
   import { getCode } from '@/components/addDoc/api/index.js';
-  import { pricingWayList,lbjtList } from '@/enum/dict.js';
+  import { pricingWayList, lbjtList } from '@/enum/dict.js';
   import { getInventoryTotalAPI } from '@/api/wms';
 
   const dayjs = require('dayjs');
@@ -767,12 +741,13 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
               }
-          
             }
           },
 
@@ -934,7 +909,6 @@
         });
       },
 
-      
       downloadFile(file) {
         getFile({ objectName: file.storePath }, file.name);
       },
@@ -971,6 +945,8 @@
       },
       //计算总金额
       getTotalPrice(row, index) {
+        this.getNotaxSinglePrice();
+
         if (this.form.datasource.length) {
           let sum = 0;
           sum = this.getNumTotalPrice();
@@ -989,6 +965,22 @@
           return 0.0;
         }
       },
+      //计算不含税单价
+      getNotaxSinglePrice() {
+        this.form.datasource.forEach((item, index) => {
+          if (item.singlePrice && item.taxRate) {
+            this.$set(
+              this.form.datasource[index],
+              'notaxSinglePrice',
+              parseFloat(
+                (item.singlePrice / (1 + item.taxRate / 100)).toFixed(2)
+              )
+            );
+          } else {
+            this.$set(this.form.datasource[index], 'notaxSinglePrice', '');
+          }
+        });
+      },
       //计算总金额
       getNumTotalPrice() {
         console.log(111);
@@ -1112,11 +1104,10 @@
             item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
               ? item.guaranteePeriodUnitCode + ''
               : '';
-
           });
-          console.log(data,'data')
+          console.log(data, 'data');
           this.form.datasource = data;
-          this.allPrice= this.$store.state.order.allcountAmount;
+          this.allPrice = this.$store.state.order.allcountAmount;
           let codeList = this.form.datasource
             .filter((item) => item.productCode)
             .map((item) => item.productCode);
@@ -1136,7 +1127,6 @@
                 find.availableCountBase
               );
             });
-
         }
       },
       //选择产品

+ 2 - 7
src/views/purchasingManage/purchaseOrder/components/planTableList.vue

@@ -9,11 +9,9 @@
     title="物品清单"
     width="60%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle @setFullscreen="fullscreen = !fullscreen"></modalTitle>
-    </template>
 
     <ele-pro-table
       ref="table"
@@ -42,12 +40,9 @@
 
 <script>
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   export default {
     components: {
       fileMain,
-
-      modalTitle
     },
 
     data() {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/components/supplierGoodsListDialog.vue

@@ -8,6 +8,8 @@
     append-to-body
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <ele-pro-table
       ref="supplyRef"

+ 2 - 9
src/views/purchasingManage/purchaseOrder/invoice/components/addInvoiceDialog.vue

@@ -8,14 +8,9 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :model="form"
@@ -190,7 +185,6 @@
   import { getWarehouseListByIds } from '@/api/purchasingManage/returnGoods';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
 
   export default {
     mixins: [dictMixins],
@@ -201,7 +195,6 @@
       inventoryTable,
       orderListDialog,
       outSourceSendDialog,
-      modalTitle
     },
     data() {
       let formDef = {

+ 2 - 9
src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue

@@ -9,14 +9,9 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -168,7 +163,6 @@
   import { getReceiveSaleOrderrecordDetail } from '@/api/purchasingManage/purchaseorderreceive';
   import innerBoundDetails from '@/BIZComponents/innerdetails.vue';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
 
   export default {
     mixins: [dictMixins],
@@ -176,7 +170,6 @@
       fileMain,
       // innertboundDetailsDialog,
       bpmDetail,
-      modalTitle,
       innerBoundDetails
     },
     data() {

+ 84 - 47
src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue

@@ -72,6 +72,7 @@
             }
           ]"
         >
+          {{ scope.row.sendTotalWeight1 }}
           <el-input-number
             :controls="false"
             v-model="scope.row.sendTotalWeight"
@@ -251,7 +252,8 @@
     components: {
       fileMain,
       outboundDetailsDialog,
-      productList,taskinstanceDialog
+      productList,
+      taskinstanceDialog
     },
     data() {
       const defaultForm = {
@@ -270,7 +272,7 @@
         discountTotalPrice: 0.0,
         allPrice: 0.0,
         outboundDetailsDialogFlag: false,
-        taskinstanceDialogFlag:false,
+        taskinstanceDialogFlag: false,
         curIndex: undefined,
         numberReg,
         defaultForm,
@@ -352,12 +354,13 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
               }
-          
             }
           },
           // {
@@ -468,8 +471,11 @@
             slot: 'pricingWay',
             align: 'center',
             formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
-
+              return row.pricingWay == 1
+                ? '按数量计费'
+                : row.pricingWay == 2
+                ? '按重量计费'
+                : '';
             }
           },
           {
@@ -484,9 +490,7 @@
             prop: 'taxRate',
             label: '税率',
             formatter: (_row, _column, cellValue) => {
-              return _row.taxRate
-                ? _row.taxRate+'%'
-                : '';
+              return _row.taxRate ? _row.taxRate + '%' : '';
             },
             align: 'center'
           },
@@ -610,7 +614,7 @@
     created() {
       this.requestDict('产地');
       this.requestDict('生产类型');
-      
+
       getWarehouseList().then((res) => {
         this.warehouseList = res;
       });
@@ -663,6 +667,7 @@
       //出库单详情
       handleOutBound(e, rows, index) {
         this.curIndex = index;
+
         this.outboundDetailsDialogFlag = true;
         this.$nextTick(() => {
           let row = {
@@ -678,12 +683,20 @@
           num += Number(row.weight);
           return num;
         }, 0);
+        console.log(totalWeight, 'totalWeight');
         this.$set(
           this.form.datasource[this.curIndex],
           'sendTotalWeight',
           totalWeight
         );
-        this.setIcreaseTotalWeight();
+        this.$forceUpdate();
+        this.$refs.table.reload();
+
+        console.log(
+          this.form.datasource[this.curIndex],
+          'this.form.datasource[this.curIndex]'
+        );
+        // this.setIcreaseTotalWeight();
       },
       //修改数量更新合计/总重
       changeNum(val, index, row) {
@@ -744,7 +757,7 @@
       },
       getWeightPrice() {
         if (this.form.datasource[this.curIndex]['pricingWay'] != 2) {
-          reutrn;
+          return;
         }
         let increaseTotalWeight =
           this.form.datasource[this.curIndex].increaseTotalWeight;
@@ -788,34 +801,46 @@
           copyObj(obj)
         );
         this.form.datasource.forEach((item, index) => {
-            item.receiveTotalWeight =
-              item.receiveTotalWeight ||
+          this.$set(
+            this.form.datasource[index],
+            'receiveTotalWeight',
+            item.receiveTotalWeight ||
               Number(item.totalCount) * Number(item.singleWeight) ||
-              0;
-            if (this.outsourceSendCode) {
-              item.increaseTotalWeight =
-                Number(item.receiveTotalWeight) - Number(item.sendTotalWeight);
-            } else {
-              item.increaseTotalWeight =
-                item.increaseTotalWeight || item.receiveTotalWeight || 0;
-            }
-            item.sendTotalWeight = item.sendTotalWeight || 0;
-            item.pricingWay=item.pricingWay||this.pricingWay
-            this.changeNum(item.totalCount, index,item);
-            
-          });
+              0
+          );
+
+          if (this.outsourceSendCode) {
+            this.$set(
+              this.form.datasource[index],
+              'increaseTotalWeight',
+              Number(item.receiveTotalWeight) - Number(item.sendTotalWeight)
+            );
+          } else {
+            this.$set(
+              this.form.datasource[index],
+              'increaseTotalWeight',
+              item.increaseTotalWeight || item.receiveTotalWeight || 0
+            );
+          }
+          this.$set(
+            this.form.datasource[index],
+            'sendTotalWeight',
+            item.sendTotalWeight || 0
+          );
+          item.pricingWay = item.pricingWay || this.pricingWay;
+          this.changeNum(item.totalCount, index, item);
+        });
       },
       validateTotalCount(row) {
-        let totalCount=Number(row.totalCount)
-        if(row.receiveTotalCount){
-          totalCount+=Number(row.receiveTotalCount)
+        let totalCount = Number(row.totalCount);
+        if (row.receiveTotalCount) {
+          totalCount += Number(row.receiveTotalCount);
         }
         return (rule, value, callback) => {
           if (isNaN(value) || Number(value) <= 0) {
             // this.$message.error('请输入大于0的数');
             callback(new Error('请输入大于0的数字'));
-          } else if (totalCount> row.orderTotalCount) {
-         
+          } else if (totalCount > row.orderTotalCount) {
             // this.$message.warning('收货数量大于采购总数量');
             callback(new Error('收货数量大于采购总数量'));
           } else {
@@ -859,21 +884,33 @@
             };
           });
           this.form.datasource.forEach((item, index) => {
-            item.receiveTotalWeight =
+            this.$set(
+              this.form.datasource[index],
+              'receiveTotalWeight',
               item.receiveTotalWeight ||
-              Number(item.totalCount) * Number(item.singleWeight) ||
-              0;
+                Number(item.totalCount) * Number(item.singleWeight) ||
+                0
+            );
             if (this.outsourceSendCode) {
-              item.increaseTotalWeight =
-                Number(item.receiveTotalWeight) - Number(item.sendTotalWeight);
+              this.$set(
+                this.form.datasource[index],
+                'increaseTotalWeight',
+                Number(item.receiveTotalWeight) - Number(item.sendTotalWeight)
+              );
             } else {
-              item.increaseTotalWeight =
-                item.increaseTotalWeight || item.receiveTotalWeight || 0;
+              this.$set(
+                this.form.datasource[index],
+                'increaseTotalWeight',
+                item.increaseTotalWeight || item.receiveTotalWeight || 0
+              );
             }
-            item.sendTotalWeight = item.sendTotalWeight || 0;
-            item.pricingWay=item.pricingWay||this.pricingWay
-            this.changeNum(item.totalCount, index,item);
-            
+            this.$set(
+              this.form.datasource[index],
+              'sendTotalWeight',
+              item.sendTotalWeight || 0
+            );
+            item.pricingWay = item.pricingWay || this.pricingWay;
+            this.changeNum(item.totalCount, index, item);
           });
           this.$refs.table.reload();
           this.$forceUpdate();
@@ -902,7 +939,7 @@
 
       validateForm(callback) {
         //开始表单校验
-        this.$refs.form.validate((valid,obj) => {
+        this.$refs.form.validate((valid, obj) => {
           if (obj) {
             let messages = Object.keys(obj).map((key) => obj[key][0]);
             if (messages.length > 0) {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/invoice/components/outboundDetailsDialog.vue

@@ -7,6 +7,8 @@
     append-to-body
     :close-on-click-modal="false"
     width="70%"
+    :maxable="true"
+    :resizable="true"
     :before-close="cancel">
     <div>
       <div class="content-detail">

+ 2 - 9
src/views/purchasingManage/purchaseOrder/outSourceSend/components/addOrEditDialog.vue

@@ -7,14 +7,9 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form
       ref="form"
       :model="form"
@@ -154,7 +149,6 @@
   import { getByIdCondition } from '@/api/purchasingManage/purchaseOrder';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
 
   export default {
     props: {
@@ -167,7 +161,6 @@
       fileUpload,
       inventoryTable,
       orderListDialog,
-      modalTitle
     },
     data() {
       return {

+ 2 - 9
src/views/purchasingManage/purchaseOrder/outSourceSend/components/detailDialog.vue

@@ -7,15 +7,10 @@
     :append-to-body="true"
     :close-on-click-modal="false"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -147,7 +142,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import fileUpload from '@/components/upload/fileUpload.vue';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import outBoundDetails from '@/BIZComponents/outdetails.vue';
 
   export default {
@@ -156,7 +150,6 @@
       fileMain,
       fileUpload,
       bpmDetail,
-      modalTitle,
       outBoundDetails
     },
     props: {

+ 4 - 6
src/views/purchasingManage/purchaseOrder/returnGoods/components/addReturnGoodsDialog.vue

@@ -8,12 +8,10 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
 
   >
-  <template slot="title">
-     <modalTitle :title="title" @setFullscreen="fullscreen=!fullscreen"></modalTitle>
-    </template>
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <headerTitle title="退货信息"></headerTitle>
 
@@ -174,7 +172,7 @@ import outSourceSendDialog from '@/views/purchasingManage/purchaseOrder/invoice/
 import { getPurchaseOutSourceSendDetailAPI } from '@/api/purchasingManage/outSourceSend';
 import fileMain from "@/components/addDoc/index.vue";
 import processSubmitDialog from "@/BIZComponents/processSubmitDialog/processSubmitDialog.vue";
-import modalTitle from '@/BIZComponents/modalTitle.vue';
+
 
 export default {
   mixins: [dictMixins],
@@ -184,7 +182,7 @@ export default {
     outSourceSendDialog,
     fileUpload,
     sendListDialog,
-    inventoryTable,modalTitle
+    inventoryTable
   },
   data() {
     let formDef = {

+ 3 - 9
src/views/purchasingManage/purchaseOrder/returnGoods/components/detailDialog.vue

@@ -8,15 +8,10 @@
     :append-to-body="true"
     :close-on-click-modal="false"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -195,11 +190,10 @@
   import { copyObj } from '@/utils/util';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import innerBoundDetails from '@/BIZComponents/innerdetails.vue';
   import outBoundDetails from '@/BIZComponents/outdetails.vue';
   export default {
-    components: { fileMain, bpmDetail, modalTitle, innerBoundDetails,outBoundDetails },
+    components: { fileMain, bpmDetail, innerBoundDetails,outBoundDetails },
     mixins: [dictMixins],
     data() {
       return {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/returnGoods/components/innerboundDetailsDialog.vue

@@ -7,6 +7,8 @@
     append-to-body
     :close-on-click-modal="false"
     width="70%"
+    :maxable="true"
+    :resizable="true"
     :before-close="cancel">
     <div>
       <div class="content-detail">

+ 3 - 9
src/views/purchasingManage/purchasePlanManage/components/addDialog.vue

@@ -9,14 +9,10 @@
     :close-on-click-modal="false"
     width="60%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <headerTitle title="基本信息"></headerTitle>
       <el-row>
@@ -265,7 +261,6 @@
   import { getFile } from '@/api/system/file';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { orderSourceType,requirementSourceType } from '@/enum/dict';
 
   export default {
@@ -289,7 +284,6 @@
       purchaseNeedList,
       personSelect,
       staffSelection,
-      modalTitle
     },
     data() {
       let formDef = {

+ 2 - 9
src/views/purchasingManage/purchasePlanManage/components/detailDialog.vue

@@ -10,14 +10,9 @@
     :close-on-click-modal="false"
     width="60%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -251,7 +246,6 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import timeDialog from '@/components/timeDialog/index.vue';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import outsourcing from './outsourcing.vue';
   import {
     orderSourceType,
@@ -264,7 +258,6 @@
       bpmDetail,
       timeDialog,
       outsourcing,
-      modalTitle
     },
     props: {
       isModal: {

+ 2 - 0
src/views/purchasingManage/purchasePlanManage/components/splitDialog.vue

@@ -7,6 +7,8 @@
     :close-on-click-modal="false"
     width="80%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <el-form ref="form" :model="form" class="el-form-box" label-width="120px">

+ 2 - 0
src/views/purchasingManage/supplierManage/components/addContactDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">
       <el-tab-pane label="基本信息" :name="1">

+ 534 - 417
src/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue

@@ -1,25 +1,41 @@
 <template>
-  <ele-modal custom-class="ele-dialog-form long-dialog-form"
-             :centered="true" :visible.sync="certificateQualificationsDialogFlag" :title="title"
-             append-to-body
-             :close-on-click-modal="false" width="70%" :before-close="cancel">
+  <ele-modal
+    custom-class="ele-dialog-form long-dialog-form"
+    :centered="true"
+    :visible.sync="certificateQualificationsDialogFlag"
+    :title="title"
+    append-to-body
+    :maxable="true"
+    :resizable="true"
+    :close-on-click-modal="false"
+    width="70%"
+    :before-close="cancel"
+  >
     <el-tabs v-model="activeName" type="card">
       <el-tab-pane label="证书资质" name="QC">
         <el-form ref="form" :model="form" class="el-form-box">
-          <headerTitle title="基本信息"/>
+          <headerTitle title="基本信息" />
           <el-row :gutter="20">
             <el-col :span="12">
-              <el-form-item label-width="50px" label="名称" prop="name"
-                            :rules=" {required: true, message: '请输入',trigger: 'blur' }">
-                <el-input v-model="form.name" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                label-width="50px"
+                label="名称"
+                prop="name"
+                :rules="{ required: true, message: '请输入', trigger: 'blur' }"
+              >
+                <el-input
+                  v-model="form.name"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="有效时间:" prop="date" label-width="90px">
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="form.date"
-                  style="width: 100%;"
+                  style="width: 100%"
                   type="daterange"
                   value-format="yyyy-MM-dd"
                   range-separator="至"
@@ -33,166 +49,234 @@
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label-width="50px" label="备注">
-                <el-input type="textarea" v-model="form.remark" :disabled="type=='view'" clearable></el-input>
+                <el-input
+                  type="textarea"
+                  v-model="form.remark"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="附件:" prop="accessory" label-width="90px">
-                <fileMain v-model="form.accessory"  :type="type"></fileMain>
-
+                <fileMain v-model="form.accessory" :type="type"></fileMain>
               </el-form-item>
             </el-col>
           </el-row>
-          <headerTitle title="资质信息"/>
-          <ele-pro-table ref="linkTable" :columns="columns" :datasource="form.detailsList" :toolkit="[]" height="300px"
-                         :need-page="false">
+          <headerTitle title="资质信息" />
+          <ele-pro-table
+            ref="linkTable"
+            :columns="columns"
+            :datasource="form.detailsList"
+            :toolkit="[]"
+            height="300px"
+            :need-page="false"
+          >
             <!-- 表头工具栏 -->
             <template v-slot:toolbar>
-
-              <el-button v-if="type!=='view'" type="primary" @click="handleAdd">添加</el-button>
+              <el-button
+                v-if="type !== 'view'"
+                type="primary"
+                @click="handleAdd"
+                >添加</el-button
+              >
             </template>
             <template v-slot:name="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.name'" :rules="{
-            required: true,
-            message: '',
-            trigger: 'change'
-          }">
-                <el-select v-if="type!=='view'" v-model="scope.row.name" clearable
-                           @change="(val)=>handleChangeType(val,scope.row)">
-                  <el-option :disabled="disabledToType(scope.row).includes(item.dictCode)"
-                             v-for="item in dictList" :value="item.dictValue"
-                             :label="item.dictValue"></el-option>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.name'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: 'change'
+                }"
+              >
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.name"
+                  clearable
+                  @change="(val) => handleChangeType(val, scope.row)"
+                >
+                  <el-option
+                    :disabled="
+                      disabledToType(scope.row).includes(item.dictCode)
+                    "
+                    v-for="item in dictList"
+                    :value="item.dictValue"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/供应商资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ scope.row.name}}</span>
+                <span v-else>{{ scope.row.name }}</span>
               </el-form-item>
-
             </template>
             <template v-slot:code="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.code'" :rules="{
-            required: true,
-            message: '',
-            trigger: 'blur'
-          }">
-                <el-input v-model="scope.row.code" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.code'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: 'blur'
+                }"
+              >
+                <el-input
+                  v-model="scope.row.code"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
-
             </template>
             <template v-slot:businessRange="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.businessRange'">
-                <el-input type="textarea" v-model="scope.row.businessRange" :disabled="type=='view'" clearable></el-input>
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.businessRange'"
+              >
+                <el-input
+                  type="textarea"
+                  v-model="scope.row.businessRange"
+                  :disabled="type == 'view'"
+                  clearable
+                ></el-input>
               </el-form-item>
             </template>
             <template v-slot:startTime="scope">
-              <el-form-item inline-message :prop="'detailsList.' + scope.$index + '.startTime'" :rules="{
-            required: false,
-            message: '',
-            trigger: 'change'
-
-          }">
+              <el-form-item
+                inline-message
+                :prop="'detailsList.' + scope.$index + '.startTime'"
+                :rules="{
+                  required: false,
+                  message: '',
+                  trigger: 'change'
+                }"
+              >
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="scope.row.startTime"
                   type="date"
                   style="width: 100%"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期">
+                  placeholder="选择日期"
+                >
                 </el-date-picker>
               </el-form-item>
-
             </template>
             <template v-slot:endTime="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.endTime'"
-                            :rules="{
-            required: false,
-            validator: validateEndDate(scope.row,scope.$index),
-            trigger: ['blur','change']
-          }">
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.endTime'"
+                :rules="{
+                  required: false,
+                  validator: validateEndDate(scope.row, scope.$index),
+                  trigger: ['blur', 'change']
+                }"
+              >
                 <el-date-picker
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   v-model="scope.row.endTime"
                   type="date"
                   style="width: 100%"
                   value-format="yyyy-MM-dd"
-                  placeholder="选择日期">
+                  placeholder="选择日期"
+                >
                 </el-date-picker>
               </el-form-item>
-
             </template>
             <template v-slot:noticePersonName="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.noticePersonName'" :rules="{
-            required: true,
-            message: '',
-            trigger: ['blur','change']
-
-          }">
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.noticePersonName'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: ['blur', 'change']
+                }"
+              >
                 <el-input
-                  :disabled="type=='view'"
+                  :disabled="type == 'view'"
                   @click.native="openStaffSelection(scope.$index)"
                   v-model="scope.row.noticePersonName"
                   placeholder="请选择"
                 ></el-input>
               </el-form-item>
-
             </template>
             <template v-slot:accessory="scope">
-              <el-form-item :prop="'detailsList.' + scope.$index + '.accessory'" :rules="{
-            required: true,
-            message: '',
-            trigger: ['change','blur']
-          }">
-                <fileMain v-model="scope.row.accessory"  :type="type"></fileMain>
-<!--                <fileUpload-->
-<!--                  v-if="type!=='view'"-->
-<!--                  v-model="scope.row.accessory"-->
-<!--                  module="main"-->
-<!--                  :showLib="false"-->
-<!--                  :limit="10"/>-->
-<!--                <div v-else>-->
-<!--                  <el-link-->
-<!--                    v-for="link in scope.row.accessory"-->
-<!--                    :key="link.id"-->
-<!--                    type="primary"-->
-<!--                    :underline="false"-->
-<!--                    @click="downloadFile(link)">-->
-<!--                    {{ link.name }}-->
-<!--                  </el-link>-->
-<!--                </div>-->
+              <el-form-item
+                :prop="'detailsList.' + scope.$index + '.accessory'"
+                :rules="{
+                  required: true,
+                  message: '',
+                  trigger: ['change', 'blur']
+                }"
+              >
+                <fileMain v-model="scope.row.accessory" :type="type"></fileMain>
+                <!--                <fileUpload-->
+                <!--                  v-if="type!=='view'"-->
+                <!--                  v-model="scope.row.accessory"-->
+                <!--                  module="main"-->
+                <!--                  :showLib="false"-->
+                <!--                  :limit="10"/>-->
+                <!--                <div v-else>-->
+                <!--                  <el-link-->
+                <!--                    v-for="link in scope.row.accessory"-->
+                <!--                    :key="link.id"-->
+                <!--                    type="primary"-->
+                <!--                    :underline="false"-->
+                <!--                    @click="downloadFile(link)">-->
+                <!--                    {{ link.name }}-->
+                <!--                  </el-link>-->
+                <!--                </div>-->
               </el-form-item>
-
             </template>
             <template v-slot:type="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.type'">
-                <el-select v-if="type!=='view'" v-model="scope.row.type" clearable>
-                  <el-option v-for="item in typeList" :value="item.dictCode"
-                             :label="item.dictValue"></el-option>
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.type"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in typeList"
+                    :value="item.dictCode"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/供应商资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ getLabelName(typeList,scope.row.type)  }}</span>
+                <span v-else>{{ getLabelName(typeList, scope.row.type) }}</span>
               </el-form-item>
-
             </template>
             <template v-slot:level="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.level'">
-                <el-select v-if="type!=='view'" v-model="scope.row.level" clearable>
-                  <el-option v-for="item in levelOptions" :value="item.dictCode"
-                             :label="item.dictValue"></el-option>
+                <el-select
+                  v-if="type !== 'view'"
+                  v-model="scope.row.level"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in levelOptions"
+                    :value="item.dictCode"
+                    :label="item.dictValue"
+                  ></el-option>
                 </el-select>
                 <!--                <DictSelection v-if="type!=='view'" clearable dictName="客户/供应商资质类型" v-model="scope.row.type"-->
                 <!--                               @itemChange="(val)=>handleChangeType(val,scope.row)"></DictSelection>-->
-                <span v-else>{{ getLabelName(levelOptions,scope.row.type)  }}</span>
+                <span v-else>{{
+                  getLabelName(levelOptions, scope.row.type)
+                }}</span>
               </el-form-item>
             </template>
             <template v-slot:remark="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.remark'">
-                <el-input type="textarea" :disabled="type=='view'" v-model="scope.row.remark"></el-input>
+                <el-input
+                  type="textarea"
+                  :disabled="type == 'view'"
+                  v-model="scope.row.remark"
+                ></el-input>
               </el-form-item>
             </template>
             <template v-slot:status="scope">
               <el-form-item :prop="'detailsList.' + scope.$index + '.status'">
-                <el-tag v-if="scope.row.status" :type="statusTagTypeList[scope.row.status]">
+                <el-tag
+                  v-if="scope.row.status"
+                  :type="statusTagTypeList[scope.row.status]"
+                >
                   {{ statusList[scope.row.status] }}
                 </el-tag>
               </el-form-item>
@@ -208,7 +292,7 @@
               >
                 <template v-slot:reference>
                   <el-link
-                    v-if="type!=='view'"
+                    v-if="type !== 'view'"
                     type="danger"
                     :underline="false"
                     icon="el-icon-delete"
@@ -218,350 +302,383 @@
                 </template>
               </el-popconfirm>
             </template>
-
           </ele-pro-table>
-
         </el-form>
-
       </el-tab-pane>
-      <el-tab-pane v-if="form.processInstanceId" label="流程详情" name="processInstance">
-        <bpmDetail :id="form.processInstanceId" v-if="activeName=='processInstance'"></bpmDetail>
+      <el-tab-pane
+        v-if="form.processInstanceId"
+        label="流程详情"
+        name="processInstance"
+      >
+        <bpmDetail
+          :id="form.processInstanceId"
+          v-if="activeName == 'processInstance'"
+        ></bpmDetail>
       </el-tab-pane>
     </el-tabs>
-    <div slot="footer" v-if="activeName=='QC'">
-      <el-button v-if="type!=='view'" type="primary" @click="handleSave(false)">保存</el-button>
-      <el-button v-if="isNeed_process_is_close&&type!=='view'" type="primary" plan @click="handleSave(true)">提交</el-button>
+    <div slot="footer" v-if="activeName == 'QC'">
+      <el-button
+        v-if="type !== 'view'"
+        type="primary"
+        @click="handleSave(false)"
+        >保存</el-button
+      >
+      <el-button
+        v-if="isNeed_process_is_close && type !== 'view'"
+        type="primary"
+        plan
+        @click="handleSave(true)"
+        >提交</el-button
+      >
       <el-button @click="cancel">返回</el-button>
     </div>
     <staffSelection
       ref="staffSelection"
       @confirm="confirmStaffSelection"
     ></staffSelection>
-    <process-submit-dialog :processSubmitDialogFlag.sync="processSubmitDialogFlag" v-if="processSubmitDialogFlag" ref="processSubmitDialogRef" @reload="reload"></process-submit-dialog>
-
+    <process-submit-dialog
+      :processSubmitDialogFlag.sync="processSubmitDialogFlag"
+      v-if="processSubmitDialogFlag"
+      ref="processSubmitDialogRef"
+      @reload="reload"
+    ></process-submit-dialog>
   </ele-modal>
 </template>
 <script>
-import FileUpload from "@/components/upload/fileUpload.vue";
-import staffSelection from "@/components/staffSelection/staffSelection.vue";
-import {
-  contactQcPackDetailAPI,
-  contactQcPackSaveAPI,
-  contactQcPackUpdateAPI,
-  contactQcSubmit
-} from "@/api/saleManage/contact";
-import {getFile} from "@/api/system/file";
-import bpmDetail from "@/views/bpm/processInstance/detail.vue";
-import {mapActions, mapGetters} from "vuex";
-import dictEnum from "@/enum/dict";
-import fileMain from "@/components/addDoc/index.vue";
-import processSubmitDialog from "@/BIZComponents/processSubmitDialog/processSubmitDialog.vue";
-
-export default {
-  name: "certificateQualificationsDialog",
-  components: {processSubmitDialog, fileMain, bpmDetail, FileUpload, staffSelection},
-  props: {
-    certificateQualificationsDialogFlag: Boolean,
-    contactInfo: Object,
-    typeInfo: String
-  },
-  data() {
-    return {
-      title: '',
-      type: '',
-      activeName: 'QC',
-      defaultData: {
-        accessory: [],
-        name: "",
-        noticePersonId: "",
-        noticePersonName: "",
-        num: "",
-        remark: "",
-        businessRange: "",
-        type: "",
-        endTime: "",
-        startTime: ""
-      },
-      form: {
-        accessory:[],
-        detailsList: [],
-        relationName: '',
-        name: '',
-        date: [],
-        remark: '',
+  import FileUpload from '@/components/upload/fileUpload.vue';
+  import staffSelection from '@/components/staffSelection/staffSelection.vue';
+  import {
+    contactQcPackDetailAPI,
+    contactQcPackSaveAPI,
+    contactQcPackUpdateAPI,
+    contactQcSubmit
+  } from '@/api/saleManage/contact';
+  import { getFile } from '@/api/system/file';
+  import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+  import { mapActions, mapGetters } from 'vuex';
+  import dictEnum from '@/enum/dict';
+  import fileMain from '@/components/addDoc/index.vue';
+  import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
 
-      },
-      curIndex: null,
-      processSubmitDialogFlag: false,
-      levelOptions: [
-        {
-          dictValue: '初级',
-          dictCode: '1'
-        },
-        {
-          dictValue: '中级',
-          dictCode: '2'
-        },
-        {
-          dictValue: '高级',
-          dictCode: '3'
-        }
-      ],
-      statusList: {
-        10: '有效',
-        20: '无效',
-        30: '已过期',
-      },
-      statusTagTypeList: {
-        10: 'success',
-        20: 'info',
-        30: 'danger',
-      },
-    }
-  },
-  computed: {
-    ...mapGetters(['dict']),
-    dictList() {
-      return this.dict[dictEnum['客户/供应商资质类型']] || [];
+  export default {
+    name: 'certificateQualificationsDialog',
+    components: {
+      processSubmitDialog,
+      fileMain,
+      bpmDetail,
+      FileUpload,
+      staffSelection
     },
-    typeList() {
-      return this.dict[dictEnum['工种类型']] || [];
+    props: {
+      certificateQualificationsDialogFlag: Boolean,
+      contactInfo: Object,
+      typeInfo: String
     },
-    columns() {
-      return [
-        {
-          type: 'index',
-          width: 55,
-          align: 'center'
-        },
-        {
-          label: '名称',
-          prop: 'name',
-          slot: 'name',
-          headerSlot: 'isRequired',
-          minWidth: 180,
-          align: 'center'
-        },
-        {
-          label: '编号',
-          prop: 'code',
-          slot: 'code',
-          headerSlot: 'isRequired',
-          minWidth: 120,
-          align: 'center'
-        },
-        {
-          label: '许可/经营范围',
-          prop: 'businessRange',
-          slot: 'businessRange',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '有效期起始日期',
-          prop: 'startTime',
-          slot: 'startTime',
-          // headerSlot: 'isRequired',
-          minWidth: 160,
-          align: 'center'
-        },
-        {
-          label: '有效期截止日期',
-          prop: 'endTime',
-          slot: 'endTime',
-          // headerSlot: 'isRequired',
-          minWidth: 160,
-          align: 'center'
-        },
-        {
-          label: '通知人',
-          prop: 'noticePersonName',
-          slot: 'noticePersonName',
-          headerSlot: 'isRequired',
-          minWidth: 140,
-          align: 'center'
+    data() {
+      return {
+        title: '',
+        type: '',
+        activeName: 'QC',
+        defaultData: {
+          accessory: [],
+          name: '',
+          noticePersonId: '',
+          noticePersonName: '',
+          num: '',
+          remark: '',
+          businessRange: '',
+          type: '',
+          endTime: '',
+          startTime: ''
         },
-        {
-          label: '附件',
-          prop: 'accessory',
-          slot: 'accessory',
-          headerSlot: 'isRequired',
-          minWidth: 140,
+        form: {
+          accessory: [],
+          detailsList: [],
+          relationName: '',
+          name: '',
+          date: [],
+          remark: ''
         },
-        {
-          label: '等级',
-          prop: 'level',
-          slot: 'level',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '分类',
-          prop: 'type',
-          slot: 'type',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '备注',
-          prop: 'remark',
-          slot: 'remark',
-          minWidth: 140,
-          align: 'center'
-        },
-        {
-          label: '状态',
-          prop: 'status',
-          slot: 'status',
-          align: 'center',
+        curIndex: null,
+        processSubmitDialogFlag: false,
+        levelOptions: [
+          {
+            dictValue: '初级',
+            dictCode: '1'
+          },
+          {
+            dictValue: '中级',
+            dictCode: '2'
+          },
+          {
+            dictValue: '高级',
+            dictCode: '3'
+          }
+        ],
+        statusList: {
+          10: '有效',
+          20: '无效',
+          30: '已过期'
         },
-        {
-          action: 'action',
-          slot: 'action',
-          label: '操作',
-          align: 'center',
-          fixed:'right'
+        statusTagTypeList: {
+          10: 'success',
+          20: 'info',
+          30: 'danger'
         }
-      ]
+      };
     },
-    disabledToType() {
-      return (row) => {
-        let list = this.form.detailsList.map(item => item.name)
-        let dictCodeList = this.dictList.map(item => item.dictCode)
-        let intersectionList = list.filter((v) => dictCodeList.indexOf(v) > -1)
-        intersectionList = intersectionList.filter(v => row.name !== v)
-        return intersectionList
+    computed: {
+      ...mapGetters(['dict']),
+      dictList() {
+        return this.dict[dictEnum['客户/供应商资质类型']] || [];
+      },
+      typeList() {
+        return this.dict[dictEnum['工种类型']] || [];
+      },
+      columns() {
+        return [
+          {
+            type: 'index',
+            width: 55,
+            align: 'center'
+          },
+          {
+            label: '名称',
+            prop: 'name',
+            slot: 'name',
+            headerSlot: 'isRequired',
+            minWidth: 180,
+            align: 'center'
+          },
+          {
+            label: '编号',
+            prop: 'code',
+            slot: 'code',
+            headerSlot: 'isRequired',
+            minWidth: 120,
+            align: 'center'
+          },
+          {
+            label: '许可/经营范围',
+            prop: 'businessRange',
+            slot: 'businessRange',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '有效期起始日期',
+            prop: 'startTime',
+            slot: 'startTime',
+            // headerSlot: 'isRequired',
+            minWidth: 160,
+            align: 'center'
+          },
+          {
+            label: '有效期截止日期',
+            prop: 'endTime',
+            slot: 'endTime',
+            // headerSlot: 'isRequired',
+            minWidth: 160,
+            align: 'center'
+          },
+          {
+            label: '通知人',
+            prop: 'noticePersonName',
+            slot: 'noticePersonName',
+            headerSlot: 'isRequired',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '附件',
+            prop: 'accessory',
+            slot: 'accessory',
+            headerSlot: 'isRequired',
+            minWidth: 140
+          },
+          {
+            label: '等级',
+            prop: 'level',
+            slot: 'level',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '分类',
+            prop: 'type',
+            slot: 'type',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '备注',
+            prop: 'remark',
+            slot: 'remark',
+            minWidth: 140,
+            align: 'center'
+          },
+          {
+            label: '状态',
+            prop: 'status',
+            slot: 'status',
+            align: 'center'
+          },
+          {
+            action: 'action',
+            slot: 'action',
+            label: '操作',
+            align: 'center',
+            fixed: 'right'
+          }
+        ];
+      },
+      disabledToType() {
+        return (row) => {
+          let list = this.form.detailsList.map((item) => item.name);
+          let dictCodeList = this.dictList.map((item) => item.dictCode);
+          let intersectionList = list.filter(
+            (v) => dictCodeList.indexOf(v) > -1
+          );
+          intersectionList = intersectionList.filter((v) => row.name !== v);
+          return intersectionList;
+        };
       }
     },
-  },
-  created() {
-    this.requestDict('客户/供应商资质类型');
-    this.requestDict('工种类型');
-  },
-  methods: {
-    ...mapActions('dict', ['requestDict']),
-    getLabelName(arr,id){
-      if(!id) return ''
-      return arr.find(item=>item.dictCode == id)?.dictValue
-    },
-    //删除资质
-    handleRemove(index) {
-      this.form.detailsList.splice(index, 1)
+    created() {
+      this.requestDict('客户/供应商资质类型');
+      this.requestDict('工种类型');
     },
-    //结束日期验证
-    validateEndDate(row, index) {
-      return (rule, value, callback) => {
-        //new Error('')
-        if (!value) return callback()
-        if (
-          row.endTime &&
-          row.startTime &&
-          value < row.startTime
-        ) {
-          callback(new Error('截止日期不能小于起始日期'))
-        } else {
-          callback()
+    methods: {
+      ...mapActions('dict', ['requestDict']),
+      getLabelName(arr, id) {
+        if (!id) return '';
+        return arr.find((item) => item.dictCode == id)?.dictValue;
+      },
+      //删除资质
+      handleRemove(index) {
+        this.form.detailsList.splice(index, 1);
+      },
+      //结束日期验证
+      validateEndDate(row, index) {
+        return (rule, value, callback) => {
+          //new Error('')
+          if (!value) return callback();
+          if (row.endTime && row.startTime && value < row.startTime) {
+            callback(new Error('截止日期不能小于起始日期'));
+          } else {
+            callback();
+          }
+        };
+      },
+      //页面初始化
+      init(type, row = {}) {
+        this.title =
+          type == 'add' ? '新增' : type == 'update' ? '修改' : '详情';
+        this.type = type;
+        if (type !== 'add') {
+          this.getCertificateInfo(row);
         }
+      },
+      async getCertificateInfo(row) {
+        this.form = await contactQcPackDetailAPI(row.id);
+        this.form.date = [this.form.startTime, this.form.endTime];
+      },
+      //打开选择负责人弹窗
+      openStaffSelection(index) {
+        this.curIndex = index;
+        this.$refs.staffSelection.open([]);
+      },
+      //选择负责人回调
+      confirmStaffSelection(data) {
+        this.form.detailsList[this.curIndex].noticePersonName = data
+          .map((item) => item.name)
+          .toString();
+        this.form.detailsList[this.curIndex].noticePersonId = data
+          .map((item) => item.id)
+          .toString();
+      },
+      //新增
+      handleAdd() {
+        this.form.detailsList.push({ ...this.defaultData });
+      },
+      //修改资质证书
+      handleChangeType(val, row) {
+        if (!val) return (row.name = '');
+        // row.name = this.dictList.find(i => i.dictCode == val)?.dictValue || ''
+      },
+      downloadFile(file) {
+        getFile({ objectName: file.storePath }, file.name);
+      },
+      //保存/提交
+      handleSave(isSub) {
+        let msg =
+          this.typeInfo == '1'
+            ? '请保存客户信息后新增资质'
+            : '请保存供应商信息后新增资质';
+        if (!this.contactInfo.id) return this.$message.success(msg);
+        this.$refs.form.validate(async (valid) => {
+          console.log(1111, valid);
+          if (!valid) return this.$message.warning('有必填项未填写,请检查');
+          if (!this.form.detailsList.length)
+            return this.$message.warning('至少保存一条资质信息');
+          this.form.certificationType = this.typeInfo;
+          this.form.relationId = this.contactInfo.id;
+          this.form.relationName = this.contactInfo.name;
+          this.form.startTime = this.form.date[0];
+          this.form.endTime = this.form.date[1];
+          let api =
+            this.type == 'add' ? contactQcPackSaveAPI : contactQcPackUpdateAPI;
+          let id = await api(this.form);
+          if (isSub) {
+            // await contactQcSubmit({businessId: id, certificationType: this.typeInfo})
+            await this.submit({
+              businessId: id,
+              certificationType: this.typeInfo
+            });
+            return;
+          }
+          this.$message.success('保存成功');
+          this.$emit('reload');
+          this.cancel();
+        });
+      },
+      async submit(row) {
+        let data = await contactQcPackDetailAPI(this.form.id || row.businessId);
+        this.processSubmitDialogFlag = true;
+        this.$nextTick(() => {
+          let key =
+            this.typeInfo == 1 ? 'contact_qc_approve' : 'supplier_qc_approve';
+          let params = {
+            businessId: data.id,
+            businessKey: key,
+            formCreateUserId: data.createUserId,
+            variables: {
+              certificationType: this.typeInfo,
+              businessCode: data.code
+            }
+            // callBackMethodType : '1',
+            // callBackMethod : 'proTargetPlanApproveApiImpl.updatePlanApprovalStatus',
+            // pcHandle : '/bpm/handleTask/components/project-manage/plan-manage/submit.vue',
+            // pcView : '/bpm/handleTask/components/project-manage/plan-manage/detailDialog.vue',
+            // miniHandle : '',
+            // miniView : '',
+          };
+          this.$refs.processSubmitDialogRef.init(params);
+        });
+      },
+      reload() {
+        this.$emit('reload');
+        this.cancel();
+      },
+      //关闭弹窗
+      cancel() {
+        this.$emit('update:certificateQualificationsDialogFlag', false);
       }
-    },
-    //页面初始化
-    init(type, row = {}) {
-      this.title = type == 'add' ? '新增' : type == 'update' ? '修改' : '详情'
-      this.type = type
-      if (type !== 'add') {
-        this.getCertificateInfo(row)
-      }
-    },
-    async getCertificateInfo(row) {
-      this.form = await contactQcPackDetailAPI(row.id)
-      this.form.date = [this.form.startTime, this.form.endTime]
-    },
-    //打开选择负责人弹窗
-    openStaffSelection(index) {
-      this.curIndex = index
-      this.$refs.staffSelection.open([]);
-    },
-    //选择负责人回调
-    confirmStaffSelection(data) {
-      this.form.detailsList[this.curIndex].noticePersonName = data.map((item) => item.name).toString();
-      this.form.detailsList[this.curIndex].noticePersonId = data.map((item) => item.id).toString();
-    },
-    //新增
-    handleAdd() {
-      this.form.detailsList.push({...this.defaultData})
-    },
-    //修改资质证书
-    handleChangeType(val, row) {
-      if (!val) return row.name = ''
-     // row.name = this.dictList.find(i => i.dictCode == val)?.dictValue || ''
-
-    },
-    downloadFile(file) {
-      getFile({objectName: file.storePath}, file.name);
-    },
-    //保存/提交
-    handleSave(isSub) {
-      let msg = this.typeInfo == '1' ? '请保存客户信息后新增资质':'请保存供应商信息后新增资质'
-      if (!this.contactInfo.id) return this.$message.success(msg)
-      this.$refs.form.validate(async (valid) => {
-        console.log(1111,valid);
-        if (!valid) return this.$message.warning('有必填项未填写,请检查')
-        if (!this.form.detailsList.length) return this.$message.warning('至少保存一条资质信息')
-        this.form.certificationType = this.typeInfo
-        this.form.relationId = this.contactInfo.id
-        this.form.relationName = this.contactInfo.name
-        this.form.startTime = this.form.date[0]
-        this.form.endTime = this.form.date[1]
-        let api = this.type == 'add' ? contactQcPackSaveAPI : contactQcPackUpdateAPI
-        let id = await api(this.form)
-        if (isSub) {
-          // await contactQcSubmit({businessId: id, certificationType: this.typeInfo})
-          await this.submit({businessId: id, certificationType: this.typeInfo})
-          return
-        }
-        this.$message.success('保存成功')
-        this.$emit('reload')
-        this.cancel()
-      })
-
-    },
-   async submit(row){
-      let data = await contactQcPackDetailAPI(this.form.id||row.businessId)
-      this.processSubmitDialogFlag = true
-      this.$nextTick(()=>{
-        let key = this.typeInfo == 1 ? 'contact_qc_approve':'supplier_qc_approve'
-        let params = {
-          businessId: data.id,
-          businessKey : key,
-          formCreateUserId: data.createUserId,
-          variables:{
-            certificationType: this.typeInfo,
-            businessCode:data.code
-          },
-          // callBackMethodType : '1',
-          // callBackMethod : 'proTargetPlanApproveApiImpl.updatePlanApprovalStatus',
-          // pcHandle : '/bpm/handleTask/components/project-manage/plan-manage/submit.vue',
-          // pcView : '/bpm/handleTask/components/project-manage/plan-manage/detailDialog.vue',
-          // miniHandle : '',
-          // miniView : '',
-        }
-        this.$refs.processSubmitDialogRef.init(params)
-      })
-    },
-    reload(){
-      this.$emit('reload')
-      this.cancel()
-    },
-    //关闭弹窗
-    cancel() {
-      this.$emit('update:certificateQualificationsDialogFlag', false)
-    },
-  }
-
-}
+    }
+  };
 </script>
 <style scoped lang="scss">
-:deep.el-form-item {
-  margin-bottom: 0
-}
+  :deep.el-form-item {
+    margin-bottom: 0;
+  }
 </style>

+ 2 - 0
src/views/purchasingManage/supplierManage/components/contactDetailDialog.vue

@@ -9,6 +9,8 @@
     append-to-body
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">

+ 2 - 9
src/views/saleManage/businessOpportunity/components/addOpportunityDialog.vue

@@ -9,14 +9,9 @@
     :append-to-body="true"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <headerTitle title="基本信息"></headerTitle>
     <el-form
       label-width="120px"
@@ -230,7 +225,6 @@
   import inventoryTable from '@/BIZComponents/inventoryTable.vue';
   import fileUpload from '@/components/upload/fileUpload';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { contactDetail,updateRelationStatus } from '@/api/saleManage/contact';
   export default {
@@ -251,7 +245,6 @@
       parentList,
       personSelect,
       inventoryTable,
-      modalTitle
     },
     data() {
       let formDef = {

+ 2 - 0
src/views/saleManage/businessOpportunity/components/assignDialog.vue

@@ -9,6 +9,8 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form
       label-width="100px"

+ 2 - 0
src/views/saleManage/businessOpportunity/components/opportunityDetailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch">
       <div class="switch_left">

+ 2 - 9
src/views/saleManage/contact/components/addContactDialog.vue

@@ -8,15 +8,10 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">
       <el-tab-pane label="基本信息" :name="1">
         <headerTitle title="基本信息" style="margin-top: 30px"></headerTitle>
@@ -853,7 +848,6 @@
   import searchTable from '@/views/saleManage/saleOrder/components/searchTable.vue';
   import { getTableList } from '@/api/saleManage/saleorder';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { getByCode } from '@/api/system/dictionary-data';
 
@@ -871,7 +865,6 @@
       deptSelect,
       personSelect,
       parentList,
-      modalTitle,
       productList
     },
     data() {

+ 2 - 0
src/views/saleManage/contact/components/assignDialog.vue

@@ -9,6 +9,8 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form
       label-width="100px"

+ 2 - 0
src/views/saleManage/contact/components/certificateQualificationsDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-tabs v-model="activeName" type="card">
       <el-tab-pane label="证书资质" name="QC">

+ 2 - 0
src/views/saleManage/contact/components/contactDetailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
 
     <el-tabs v-model="activeName" type="card" @tab-click="handleActive">

+ 2 - 0
src/views/saleManage/contact/index.vue

@@ -211,6 +211,8 @@
       :append-to-body="true"
       width="70%"
       @close="visible = false"
+      :maxable="true"
+    :resizable="true"
     >
       <followList ref="followListRef" @success="followListSuccess"></followList>
     </ele-modal>

+ 4 - 9
src/views/saleManage/quotation/components/addDialog.vue

@@ -8,15 +8,11 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
 
     <el-form
       ref="form"
@@ -312,7 +308,7 @@
   import { contactDetail,updateRelationStatus } from '@/api/saleManage/contact';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
+
 
   export default {
     props: {
@@ -338,7 +334,6 @@
       deptSelect,
       parentList,
       personSelect,
-      modalTitle
     },
     data() {
       let formDef = {

+ 4 - 10
src/views/saleManage/quotation/components/detailDialog.vue

@@ -7,16 +7,12 @@
     :title="title"
     :append-to-body="true"
     :close-on-click-modal="false"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     width="70%"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -174,15 +170,13 @@
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import { acceptUnpackoptions } from '@/enum/dict';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import fileMain from '@/components/addDoc/index.vue';
 
   export default {
     mixins: [dictMixins],
     components: {
       bpmDetail,
-      inventoryTabledetail,
-      modalTitle,fileMain
+      inventoryTabledetail,fileMain
     },
     data() {
       return {

+ 3 - 9
src/views/saleManage/saleOrder/accountstatement/components/addAccountDialog.vue

@@ -6,16 +6,11 @@
     :title="title"
     :append-to-body="true"
     :close-on-click-modal="false"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     width="85%"
     :before-close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <!--销售表单-->
     <sale-form
       @handleSearch="handleSearch"
@@ -98,14 +93,13 @@
     updateAccountStatementAPI
   } from '@/api/saleManage/accountstatement';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
+
   export default {
     name: 'addAccountDialog',
     components: {
       processSubmitDialog,
       InventoryTable,
       saleForm,
-      modalTitle,
       recorpayTableList
     },
     //客户管理数据

+ 4 - 6
src/views/saleManage/saleOrder/accountstatement/components/detailDialog.vue

@@ -6,13 +6,12 @@
     :title="title"
     :append-to-body="true"
     :close-on-click-modal="false"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     width="70%"
     :before-close="cancel"
   >
-  <template slot="title">
-     <modalTitle :title="title" @setFullscreen="fullscreen=!fullscreen"></modalTitle>
-    </template>
+
     <el-card shadow="never">
       <div class="switch">
         <div class="switch_left">
@@ -77,7 +76,6 @@ import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 import InventoryTable from "@/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue";
 import saleForm from "@/views/saleManage/saleOrder/accountstatement/components/saleForm.vue";
 import {infoAccountStatementAPI} from "@/api/saleManage/accountstatement";
-import modalTitle from '@/BIZComponents/modalTitle.vue';
 import recorpayTableList from '@/views/saleManage/saleOrder/accountstatement/components/recorpayTableList.vue';
 
 export default {
@@ -85,7 +83,7 @@ export default {
   components: {
     saleForm,
     InventoryTable,
-    bpmDetail,modalTitle,recorpayTableList
+    bpmDetail,recorpayTableList
   },
   data() {
     return {

+ 1 - 0
src/views/saleManage/saleOrder/components/addDialog.vue

@@ -9,6 +9,7 @@
     width="70%"
     @close="cancel"
     :maxable="true"
+    :resizable="true"
     :title="title"
   >
     <el-form

+ 2 - 1
src/views/saleManage/saleOrder/components/detailDialog.vue

@@ -6,7 +6,8 @@
     :visible.sync="visible"
     :title="title"
     :append-to-body="true"
-
+    :maxable="true"
+    :resizable="true"
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"

+ 2 - 0
src/views/saleManage/saleOrder/customerReturnOrder/add-sale-order-dialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <headerTitle title="发货信息"></headerTitle>

+ 2 - 9
src/views/saleManage/saleOrder/customerReturnOrder/addOrEditDialog.vue

@@ -6,16 +6,11 @@
     :title="title"
     :close-on-click-modal="false"
     width="70%"
-    :fullscreen="fullscreen"
     :append-to-body="true"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
     <el-form :rules="rules" ref="formRef" :model="form">
       <el-row style="margin-bottom: 10px">
         <el-col :span="6">
@@ -248,7 +243,6 @@
   // import fileUpload from '@/components/upload/fileUpload.vue';
   import { getDetail } from '@/api/saleManage/businessOpportunity';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import ProductionVersion from '@/components/ProductionVersion2/index.vue';
   import fileMain from '@/components/addDoc/index.vue';
   import dictMixins from '@/mixins/dictMixins';
@@ -268,7 +262,6 @@
       // outboundDetailsDialog,
       // headList,
       returnOrderDialog,
-      modalTitle,
       ProductionVersion,
       fileMain
     },

+ 2 - 0
src/views/saleManage/saleOrder/customerReturnOrder/detailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch">
       <div class="switch_left">

+ 2 - 0
src/views/saleManage/saleOrder/entrustedReceive/components/addOrEditDialog.vue

@@ -7,6 +7,8 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="120px" class="el-form-box">
       <headerTitle title="收货信息"></headerTitle>

+ 2 - 0
src/views/saleManage/saleOrder/entrustedReceive/components/detailDialog.vue

@@ -8,6 +8,8 @@
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
+    :maxable="true"
+    :resizable="true"
   >
     <div class="switch">
       <div class="switch_left">

+ 2 - 0
src/views/saleManage/saleOrder/entrustedReceive/components/outboundDetailsDialog.vue

@@ -7,6 +7,8 @@
     append-to-body
     :close-on-click-modal="false"
     width="70%"
+    :maxable="true"
+    :resizable="true"
     :before-close="cancel">
 
    <innerdetails ref="outboundDetailsDialogRef" @handleSave="handleSave"></innerdetails>

+ 4 - 9
src/views/saleManage/saleOrder/exceptionManagement/components/addOrEditDialog.vue

@@ -7,14 +7,10 @@
     :close-on-click-modal="false"
     width="70%"
     :before-close="cancel"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <div class="switch" v-if="title!='处置'">
       <div class="switch_left">
         <ul>
@@ -151,12 +147,11 @@
   import { getById, update } from '@/api/exceptionManagement/index';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { relationType } from '@/enum/dict.js';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
   export default {
     mixins: [dictMixins],
     components: {
-      processSubmitDialog,modalTitle,bpmDetail
+      processSubmitDialog,bpmDetail
     },
     data() {
       return {

+ 4 - 9
src/views/saleManage/saleOrder/invoice/components/addInvoiceDialog.vue

@@ -8,15 +8,11 @@
     :close-on-click-modal="false"
     :append-to-body="true"
     width="70%"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <el-form
       ref="form"
       :model="form"
@@ -211,7 +207,6 @@
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { carBookPageListAPI } from '@/api/transportManager/carBook';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { projectsGetByIdAPI } from '@/api/pro';
 
   export default {
@@ -229,7 +224,7 @@
       entrustedReceiveDialog,
       stowageTable,
       replaceTable,
-      modalTitle
+      
     },
 
     //客户管理数据

+ 3 - 9
src/views/saleManage/saleOrder/invoice/components/detailDialog.vue

@@ -6,17 +6,13 @@
     :visible.sync="visible"
     :title="title"
     :append-to-body="true"
-    :fullscreen="fullscreen"
+    :maxable="true"
+    :resizable="true"
     :close-on-click-modal="false"
     width="70%"
     @close="cancel"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <div class="switch">
       <div class="switch_left">
         <ul>
@@ -215,7 +211,6 @@
   import getDynamicsColumns from '@/mixins/getDynamicsColumns';
   import fileMain from '@/components/addDoc/index.vue';
   import PalletTable from '@/views/saleManage/saleOrder/invoice/components/palletTable.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import replaceTable from './replaceTable.vue';
 
   import { fieldModelAPI } from '@/api/main';
@@ -228,7 +223,6 @@
       outBoundDetails,
       bpmDetail,
       stowageTable,
-      modalTitle,
       replaceTable
     },
     data() {

+ 1 - 0
src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue

@@ -914,6 +914,7 @@
           'receiveTotalWeight',
           totalWeight
         );
+        console.log(totalWeight,'totalWeight')
         this.setIcreaseTotalWeight(this.form.datasource[this.curIndex]);
       },
 

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio