002201 vor 1 Jahr
Ursprung
Commit
e7e71cef66
79 geänderte Dateien mit 771 neuen und 827 gelöschten Zeilen
  1. 1 1
      src/components/PopDialog/dose.vue
  2. 1 1
      src/components/PopDialog/drug.vue
  3. 1 1
      src/components/PopDialog/fourClass.vue
  4. 1 1
      src/components/PopDialog/index.vue
  5. 1 1
      src/components/PopDialog/innerPackingUnit.vue
  6. 1 1
      src/components/PopDialog/midPack.vue
  7. 1 1
      src/components/PopDialog/organization.vue
  8. 1 1
      src/components/PopDialog/place.vue
  9. 1 1
      src/components/PopDialog/productFactory.vue
  10. 1 1
      src/components/PopDialog/serviceline.vue
  11. 1 1
      src/components/PopDialog/staff.vue
  12. 1 1
      src/components/PopDialog/tax.vue
  13. 1 1
      src/components/PopDialog/unit.vue
  14. 1 1
      src/components/Refers/batchRefer.vue
  15. 1 1
      src/components/Refers/refers.vue
  16. 1 1
      src/components/Refers/treeRefer.vue
  17. 11 27
      src/components/popover-select-v2/index.vue
  18. 11 27
      src/components/popover-select-v2/multiple.vue
  19. 11 28
      src/components/popover-tree-select/index.vue
  20. 11 26
      src/components/popover-tree-select/multiple.vue
  21. 14 1
      src/components/super-search/index.vue
  22. 14 3
      src/components/super-table/index.vue
  23. 1 1
      src/views/business/spd/bo/authority/index.vue
  24. 1 1
      src/views/business/spd/bo/basic/accessoryList.vue
  25. 2 2
      src/views/business/spd/bo/basic/details.vue
  26. 1 1
      src/views/business/spd/bo/basic/filemanager copy.vue
  27. 1 1
      src/views/business/spd/bo/basic/index.vue
  28. 1 1
      src/views/business/spd/bo/behavior/behaviorList.vue
  29. 1 1
      src/views/business/spd/bo/contact/contactList.vue
  30. 1 1
      src/views/business/spd/bo/education/educationList.vue
  31. 1 1
      src/views/business/spd/bo/filetemplate/index.vue
  32. 1 1
      src/views/business/spd/bo/pojpsn/pojpsnList.vue
  33. 1 1
      src/views/business/spd/bo/refer/contact/index.vue
  34. 1 1
      src/views/business/spd/bo/refer/customer/index.vue
  35. 1 1
      src/views/business/spd/bo/refer/dept/index.vue
  36. 1 1
      src/views/business/spd/bo/refer/org/index.vue
  37. 1 1
      src/views/business/spd/bo/refer/saleaea/index.vue
  38. 1 1
      src/views/business/spd/bo/refer/staff/index.vue
  39. 1 1
      src/views/business/spd/bo/relationship/relationshipList.vue
  40. 1 1
      src/views/business/spd/bo/task/index.vue
  41. 1 1
      src/views/business/spd/bo/task/taskList.vue
  42. 1 1
      src/views/marketing/dealer-authorization/authprivAdd.vue
  43. 1 1
      src/views/marketing/dealer-authorization/authprivSee.vue
  44. 1 1
      src/views/material/basicFile/index.vue
  45. 1 1
      src/views/material/label/label-add-dialog.vue
  46. 1 1
      src/views/material/label/label-auto-bind-dialog.vue
  47. 1 1
      src/views/material/label/label-bind-dialog.vue
  48. 1 1
      src/views/material/label/label-edit-dialog.vue
  49. 1 1
      src/views/material/label/label-hand-bind-dialog.vue
  50. 1 1
      src/views/material/specialAttr/index.vue
  51. 2 2
      src/views/monitor/job/index.vue
  52. 1 1
      src/views/monitor/job/log.vue
  53. 1 1
      src/views/monitor/operlog/index.vue
  54. 1 1
      src/views/purchase/PurchaseDemandList/add.vue
  55. 2 2
      src/views/purchase/PurchaseDemandList/index.vue
  56. 204 197
      src/views/purchase/contract/add/index.vue
  57. 42 38
      src/views/purchase/contract/column.js
  58. 213 220
      src/views/purchase/contract/edit/index.vue
  59. 1 1
      src/views/purchase/contract/import/index.vue
  60. 36 66
      src/views/purchase/contract/index.vue
  61. 117 103
      src/views/purchase/contract/see/index.vue
  62. 0 2
      src/views/purchase/task/column.js
  63. 1 1
      src/views/purchase/task/dao-chu/index.vue
  64. 4 9
      src/views/purchase/task/index.vue
  65. 13 10
      src/views/purchase/task/ming-xi/index.vue
  66. 1 1
      src/views/purchase/task/tui-hui-xu-qiu/index.vue
  67. 1 1
      src/views/purchase/task/zhuan-pai/index.vue
  68. 1 1
      src/views/system/config/index.vue
  69. 1 1
      src/views/system/dept/index.vue
  70. 1 1
      src/views/system/dict/data.vue
  71. 1 1
      src/views/system/dict/index.vue
  72. 1 1
      src/views/system/menu/index.vue
  73. 1 1
      src/views/system/notice/index.vue
  74. 1 1
      src/views/system/post/index.vue
  75. 2 2
      src/views/system/role/index.vue
  76. 1 1
      src/views/system/role/selectUser.vue
  77. 1 1
      src/views/system/task/index.vue
  78. 2 2
      src/views/system/user/index.vue
  79. 1 1
      src/views/tool/gen/importTable.vue

+ 1 - 1
src/components/PopDialog/dose.vue

@@ -35,7 +35,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/drug.vue

@@ -39,7 +39,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/fourClass.vue

@@ -46,7 +46,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/index.vue

@@ -39,7 +39,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
         <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
       </span>

+ 1 - 1
src/components/PopDialog/innerPackingUnit.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/midPack.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/organization.vue

@@ -35,7 +35,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/place.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/productFactory.vue

@@ -103,7 +103,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/serviceline.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/staff.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/tax.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/PopDialog/unit.vue

@@ -95,7 +95,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/components/Refers/batchRefer.vue

@@ -34,7 +34,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
         <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
       </span>

+ 1 - 1
src/components/Refers/refers.vue

@@ -44,7 +44,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
         <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
       </span>

+ 1 - 1
src/components/Refers/treeRefer.vue

@@ -21,7 +21,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button size="small" @click="visible = false" icon="el-icon-circle-close">关闭</el-button>
         <el-button size="small" type="primary" icon="el-icon-circle-check" @click="doSubmit()">确定</el-button>
       </span>

+ 11 - 27
src/components/popover-select-v2/index.vue

@@ -207,39 +207,23 @@ export default {
     </el-autocomplete>
     <el-dialog
       :width="width"
-      :show-close="false"
       :visible.sync="visible"
       :close-on-click-modal="false"
       :close-on-press-escape="false"
       append-to-body
     >
-      <template slot="title">
-        <div
-          style="
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-          "
+      <div slot="footer">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
         >
-          <span>选 择</span>
-          <span>
-            <el-button
-              :size="size"
-              circle
-              icon="el-icon-check"
-              @click="useConfirm(selectData[0])"
-            >
-            </el-button>
-            <el-button
-              :size="size"
-              circle
-              type="danger"
-              icon="el-icon-close"
-              @click="hide"
-            ></el-button>
-          </span>
-        </div>
-      </template>
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useConfirm(selectData)"
+          >确 认</el-button
+        >
+      </div>
       <el-form
         v-loading="loading"
         :size="size"

+ 11 - 27
src/components/popover-select-v2/multiple.vue

@@ -173,39 +173,23 @@ export default {
     </el-input>
     <el-dialog
       :width="width"
-      :show-close="false"
       :visible.sync="visible"
       :close-on-click-modal="false"
       :close-on-press-escape="false"
       append-to-body
     >
-      <template slot="title">
-        <div
-          style="
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-          "
+      <div slot="footer">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
         >
-          <span>选 择</span>
-          <span>
-            <el-button
-              :size="size"
-              circle
-              icon="el-icon-check"
-              @click="useConfirm(selectData)"
-            >
-            </el-button>
-            <el-button
-              :size="size"
-              circle
-              type="danger"
-              icon="el-icon-close"
-              @click="useCancel"
-            ></el-button>
-          </span>
-        </div>
-      </template>
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useConfirm(selectData)"
+          >确 认</el-button
+        >
+      </div>
       <el-form
         v-loading="loading"
         :inline="true"

+ 11 - 28
src/components/popover-tree-select/index.vue

@@ -209,33 +209,18 @@ export default {
       :close-on-press-escape="false"
       append-to-body
     >
-      <template slot="title">
-        <div
-          style="
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-          "
+      <div slot="footer">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
         >
-          <span>选 择</span>
-          <span>
-            <el-button
-              :size="size"
-              circle
-              icon="el-icon-check"
-              @click="useConfirm(selectData[0])"
-            >
-            </el-button>
-            <el-button
-              :size="size"
-              circle
-              type="danger"
-              icon="el-icon-close"
-              @click="hide"
-            ></el-button>
-          </span>
-        </div>
-      </template>
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useConfirm(selectData)"
+          >确 认</el-button
+        >
+      </div>
       <el-form
         v-loading="loading"
         :size="size"
@@ -244,8 +229,6 @@ export default {
         @submit.native.prevent
       >
         <el-form-item prop="search">
-          <!-- @change="useQuery"
-          @keydown.enter="useQuery" -->
           <el-input v-model="model.search" @change="useQuery"> </el-input>
         </el-form-item>
         <el-form-item>

+ 11 - 26
src/components/popover-tree-select/multiple.vue

@@ -195,33 +195,18 @@ export default {
       :close-on-press-escape="false"
       append-to-body
     >
-      <template slot="title">
-        <div
-          style="
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-          "
+      <div slot="footer">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
         >
-          <span>选 择</span>
-          <span>
-            <el-button
-              :size="size"
-              circle
-              icon="el-icon-check"
-              @click="useConfirm(selectData)"
-            >
-            </el-button>
-            <el-button
-              :size="size"
-              circle
-              type="danger"
-              icon="el-icon-close"
-              @click="hide"
-            ></el-button>
-          </span>
-        </div>
-      </template>
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useConfirm(selectData)"
+          >确 认</el-button
+        >
+      </div>
       <el-form
         v-loading="loading"
         :size="size"

+ 14 - 1
src/components/super-search/index.vue

@@ -169,4 +169,17 @@ export default {
   destroyed() {},
 };
 </script>
-<style scoped></style>
+<style scoped>
+.transition-box {
+  margin-bottom: 10px;
+  width: 200px;
+  height: 100px;
+  border-radius: 4px;
+  background-color: #409eff;
+  text-align: center;
+  color: #fff;
+  padding: 40px 20px;
+  box-sizing: border-box;
+  margin-right: 20px;
+}
+</style>

+ 14 - 3
src/components/super-table/index.vue

@@ -45,7 +45,12 @@
         }}</component>
       </template>
     </el-table-column>
-    <el-table-column width="50" fixed="right" align="center">
+    <el-table-column
+      v-if="showOperationColumns"
+      width="50"
+      fixed="right"
+      align="center"
+    >
       <template slot="header" slot-scope="scope">
         <i
           class="el-icon-setting"
@@ -94,8 +99,10 @@
           </el-row>
         </el-drawer>
       </template>
-      <slot name="operation" :scope="scope"></slot>
-      <template slot-scope="scope"> </template>
+
+      <template slot-scope="scope">
+        <slot name="operation" v-bind="scope"> </slot>
+      </template>
     </el-table-column>
   </el-table>
 </template>
@@ -116,6 +123,10 @@ export default {
       type: [Array],
       require: true,
     },
+    showOperationColumns: {
+      type: Boolean,
+      default: true,
+    },
   },
   components: {
     ElDictTag: () => import("@/components/DictTag/index.vue"),

+ 1 - 1
src/views/business/spd/bo/authority/index.vue

@@ -297,7 +297,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/basic/accessoryList.vue

@@ -83,7 +83,7 @@
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
       </el-upload>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitFileForm">确 定</el-button>
         <el-button @click="upload.open = false">取 消</el-button>
       </div>

+ 2 - 2
src/views/business/spd/bo/basic/details.vue

@@ -185,7 +185,7 @@
           <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="关闭备注" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitWinningStateData">确 定</el-button>
         <el-button @click="cancelWinningStateData">取 消</el-button>
       </div>
@@ -205,7 +205,7 @@
           <el-radio v-model="allocationForm.isParticipant" :label='false'>否</el-radio>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitAllocationForm">确 定</el-button>
         <el-button @click="cancelAllocation">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/basic/filemanager copy.vue

@@ -46,7 +46,7 @@
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
       </el-upload>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitFileForm">确 定</el-button>
         <el-button @click="upload.open = false">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/basic/index.vue

@@ -435,7 +435,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           type="primary"
           @click="submitForm"

+ 1 - 1
src/views/business/spd/bo/behavior/behaviorList.vue

@@ -291,7 +291,7 @@
           </el-form>
         </div>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'" :disabled="submitButtonEditStatus">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/contact/contactList.vue

@@ -332,7 +332,7 @@
           </el-form>
         </div>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'" :disabled="submitButtonEditStatus">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/education/educationList.vue

@@ -121,7 +121,7 @@
           </el-select>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm" :disabled="submitButtonEditStatus">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/filetemplate/index.vue

@@ -117,7 +117,7 @@
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
       </el-upload>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitFileForm">确 定</el-button>
         <el-button @click="upload.open = false">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/pojpsn/pojpsnList.vue

@@ -151,7 +151,7 @@
           </el-select>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm" :disabled="submitButtonEditStatus">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/refer/contact/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/refer/customer/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/refer/dept/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/refer/org/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/refer/saleaea/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/refer/staff/index.vue

@@ -99,7 +99,7 @@
           </el-main>
         </el-container>
       </el-container>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button
           size="small"
           @click="visible = false"

+ 1 - 1
src/views/business/spd/bo/relationship/relationshipList.vue

@@ -112,7 +112,7 @@
           <el-input v-model="form.company" placeholder="请输入工作单位" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm" :disabled="submitButtonEditStatus">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/business/spd/bo/task/index.vue

@@ -392,7 +392,7 @@
           v-if="this.operatingState != 'Insert'"
         />
         
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           type="primary"
           @click="submitForm"

+ 1 - 1
src/views/business/spd/bo/task/taskList.vue

@@ -397,7 +397,7 @@
           v-if="this.operatingState != 'Insert'"
         />
         
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           type="primary"
           @click="submitForm"

+ 1 - 1
src/views/marketing/dealer-authorization/authprivAdd.vue

@@ -19,7 +19,7 @@
 
       </el-form-item>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button @click="handleCancel">取 消</el-button>
       <el-button type="primary" @click="handleConfirm('authprivAdd')">确 定</el-button>
     </div>

+ 1 - 1
src/views/marketing/dealer-authorization/authprivSee.vue

@@ -17,7 +17,7 @@
 
       </el-form-item>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button @click="setVisible(false)">取 消</el-button>
     </div>
   </el-dialog>

+ 1 - 1
src/views/material/basicFile/index.vue

@@ -122,7 +122,7 @@
     <!-- 操作提示 -->
     <el-dialog title="操作提示" :visible.sync="optionDialog.show" width="30%" center>
       <span>是否确认{{ optionDialog.op }}?</span>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer">
         <el-button @click="handleOptionShow('option', false)">取 消</el-button>
         <el-button type="primary" @click="handleComfirmOption('cancal')">确 定</el-button>
       </span>

+ 1 - 1
src/views/material/label/label-add-dialog.vue

@@ -139,7 +139,7 @@ export default {
         ></el-input>
       </el-form-item>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button :disabled="loading" @click="dialogFormVisible = false"
         >取 消</el-button
       >

+ 1 - 1
src/views/material/label/label-auto-bind-dialog.vue

@@ -137,7 +137,7 @@ export default {
         </el-col>
       </el-row>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button type="primary" @click="onSubmit('form')">立即创建</el-button>
       <el-button @click="dialogFormVisible = false">取消</el-button>
     </div>

+ 1 - 1
src/views/material/label/label-bind-dialog.vue

@@ -194,7 +194,7 @@ export default {
         </template>
       </el-table-column>
     </el-table>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button :disabled="loading" @click="dialogFormVisible = false"
         >取 消</el-button
       >

+ 1 - 1
src/views/material/label/label-edit-dialog.vue

@@ -139,7 +139,7 @@ export default {
         ></el-input>
       </el-form-item>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button :disabled="loading" @click="dialogFormVisible = false"
         >取 消</el-button
       >

+ 1 - 1
src/views/material/label/label-hand-bind-dialog.vue

@@ -222,7 +222,7 @@ export default {
         </el-col>
       </el-row>
     </el-form>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button type="primary" @click="onSubmit('form')">立即创建</el-button>
       <el-button @click="dialogFormVisible = false">取消</el-button>
     </div>

+ 1 - 1
src/views/material/specialAttr/index.vue

@@ -164,7 +164,7 @@
         </el-row>
 
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submit('bindForm')">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 2 - 2
src/views/monitor/job/index.vue

@@ -307,7 +307,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -360,7 +360,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button @click="openView = false">关 闭</el-button>
       </div>
     </el-dialog>

+ 1 - 1
src/views/monitor/job/log.vue

@@ -316,7 +316,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button @click="open = false">关 闭</el-button>
       </div>
     </el-dialog>

+ 1 - 1
src/views/monitor/operlog/index.vue

@@ -190,7 +190,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button @click="open = false">关 闭</el-button>
       </div>
     </el-dialog>

+ 1 - 1
src/views/purchase/PurchaseDemandList/add.vue

@@ -563,7 +563,7 @@
           <el-input disabled clearable size="mini" v-model="adjust.address"/>
         </el-col>
       </el-row>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
       <el-button size="mini" type="primary" @click="confirmAdjust">确 认</el-button>
       <el-button size="mini" @click="adjust.open = false">取 消</el-button>
       </div>

+ 2 - 2
src/views/purchase/PurchaseDemandList/index.vue

@@ -232,7 +232,7 @@
       </div> -->
       <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
       </el-upload>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
       <el-button size="mini" type="primary" @click="submitFileForm">确 定</el-button>
       <el-button size="mini" @click="upload.open = false">取 消</el-button>
       </div>
@@ -269,7 +269,7 @@
           <el-option v-for="item in classOptions" :key="item.id" :label="item.name" :value="item.code" />
         </el-select>
       </el-row>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
       <el-button size="mini" type="primary" @click="mbDownload">模板下载</el-button>
       <el-button size="mini" @click="download.open = false">取 消</el-button>
       </div>

+ 204 - 197
src/views/purchase/contract/add/index.vue

@@ -6,6 +6,16 @@ import { ADD, CODE } from "@/api/business/purchase/contract";
 
 export default {
   name: "AddDrawer",
+  props: {
+    selectData: {
+      type: [Array],
+      require: true,
+    },
+    addType: {
+      type: String,
+      default: "add",
+    },
+  },
   components: {
     ElFileUpload: () => import("@/components/FileUpload/index.vue"),
     ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
@@ -25,7 +35,6 @@ export default {
     const rules = initRules(FormColumns);
     return {
       title: "新 增",
-      size: "mini",
       width: "100%",
       visible: false,
       loading: false,
@@ -39,8 +48,9 @@ export default {
   computed: {
     $dicts: {
       get() {
-        return this.$parent.$parent.$dicts;
+        return this.$parent.$parent.$parent.dict.type;
       },
+      set() {},
     },
   },
   watch: {},
@@ -89,7 +99,7 @@ export default {
       }
     },
     //
-    async open(prop) {
+    async open() {
       const {
         user: {
           deptId: puDept,
@@ -106,8 +116,6 @@ export default {
       this.params.buyerName = buyerName;
       this.params.puDept = puDept;
       this.params.puDeptName = puDeptName;
-      this.params.source = prop === "add" ? "自制" : "期初补录";
-      this.title = prop === "add" ? "新 增" : "期初补录";
       this.visible = await this.fetchCode();
     },
     //
@@ -164,205 +172,204 @@ export default {
       });
     },
   },
-  created() {},
+  created() {
+    this.params.source = this.addType === "add" ? "自制" : "期初补录";
+    this.title = this.addType === "add" ? "新 增" : "期初补录";
+  },
   mounted() {},
   destroyed() {},
 };
 </script>
 <template>
-  <el-drawer
-    :size="width"
-    :title="title"
-    :show-close="false"
-    :visible.sync="visible"
-    destroy-on-close
-  >
-    <template slot="title">
-      <span>{{ title }}</span>
-      <span>
-        <el-button
-          :size="size"
-          circle
-          icon="el-icon-check"
-          @click="useSubmit('ruleForm')"
-        >
-        </el-button>
-        <el-button
-          :size="size"
-          circle
-          type="danger"
-          icon="el-icon-close"
-          @click="hide"
-        ></el-button>
-      </span>
-    </template>
-    <el-form
-      ref="ruleForm"
-      v-loading="loading"
-      :size="size"
-      :rules="rules"
-      :model="params"
-      label-width="auto"
-      label-position="right"
-      style="padding: 10px"
+  <el-button v-bind="$attrs" v-on="$listeners" @click="open">
+    {{ title }}
+    <el-drawer
+      :size="width"
+      :title="title"
+      :visible.sync="visible"
+      append-to-body
+      destroy-on-close
     >
-      <el-row :gutter="20" style="display: flex; flex-wrap: wrap">
-        <el-col
-          v-for="{ item, attr } in FormColumns"
-          :key="item.key"
-          :span="item.span || 6"
-        >
-          <el-form-item :prop="item.key" :label="item.title">
-            <component
-              v-if="attr.is === 'el-input'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            ></component>
-            <component
-              v-if="attr.is === 'el-popover-select-v2'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              :source.sync="params"
-              style="width: 100%"
-            >
-            </component>
-            <component
-              v-if="attr.is === 'el-input-number'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            ></component>
-            <component
-              v-if="attr.is === 'el-select'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            >
-              <el-option
-                v-for="dict in $dicts[attr.dictName]"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
+      <el-form
+        ref="ruleForm"
+        v-loading="loading"
+        :size="$attrs.size"
+        :rules="rules"
+        :model="params"
+        label-width="auto"
+        label-position="right"
+        style="padding: 10px"
+      >
+        <el-row :gutter="20" style="display: flex; flex-wrap: wrap">
+          <el-col
+            v-for="{ item, attr } in FormColumns"
+            :key="item.key"
+            :span="item.span || 6"
+          >
+            <el-form-item :prop="item.key" :label="item.title">
+              <component
+                v-if="attr.is === 'el-input'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
+              ></component>
+              <component
+                v-if="attr.is === 'el-popover-select-v2'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                :source.sync="params"
+                style="width: 100%"
               >
-              </el-option>
-            </component>
-            <component
-              v-if="attr.is === 'el-date-picker'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            >
-            </component>
-            <component
-              v-if="attr.is === 'el-file-upload'"
-              v-bind="attr"
-              v-model="params[item.key]"
-            ></component>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24">
-          <el-form-item label-width="0">
-            <el-tabs v-model="tabName">
-              <el-tab-pane
-                v-for="{ item, attr, TableColumns } in TabColumns"
-                :key="item.key"
-                :label="item.title"
-                :name="item.key"
-                lazy
+              </component>
+              <component
+                v-if="attr.is === 'el-input-number'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
+              ></component>
+              <component
+                v-if="attr.is === 'el-select'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
               >
-                <el-table :size="size" :data="params[item.key]">
-                  <el-table-column label="序号">
-                    <template slot-scope="scope">
-                      {{ scope.$index + 1 }}
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    v-for="{ item: cItem, attr: cAttr } in TableColumns"
-                    :key="cItem.key"
-                    :prop="cItem.key"
-                    :label="cItem.title"
-                    :width="cItem.width || 300"
-                    show-overflow-tooltip
-                  >
-                    <template slot-scope="scope">
-                      <component
-                        v-if="cAttr.is === 'el-input'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      ></component>
-                      <component
-                        v-else-if="cAttr.is === 'el-popover-select-v2'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        :source.sync="scope.row"
-                        style="width: 100%"
-                        @change="fetchRefer"
-                      >
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-input-number'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      ></component>
-                      <component
-                        v-else-if="cAttr.is === 'el-select'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      >
-                        <el-option
-                          v-for="dict in $dicts[cAttr.dictName]"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
+                <el-option
+                  v-for="dict in $dicts[attr.dictName]"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                >
+                </el-option>
+              </component>
+              <component
+                v-if="attr.is === 'el-date-picker'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
+              >
+              </component>
+              <component
+                v-if="attr.is === 'el-file-upload'"
+                v-bind="attr"
+                v-model="params[item.key]"
+              ></component>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label-width="0">
+              <el-tabs v-model="tabName">
+                <el-tab-pane
+                  v-for="{ item, attr, TableColumns } in TabColumns"
+                  :key="item.key"
+                  :label="item.title"
+                  :name="item.key"
+                  lazy
+                >
+                  <el-table :size="$attrs.size" :data="params[item.key]">
+                    <el-table-column label="序号">
+                      <template slot-scope="scope">
+                        {{ scope.$index + 1 }}
+                      </template>
+                    </el-table-column>
+                    <el-table-column
+                      v-for="{ item: cItem, attr: cAttr } in TableColumns"
+                      :key="cItem.key"
+                      :prop="cItem.key"
+                      :label="cItem.title"
+                      :width="cItem.width || 300"
+                      show-overflow-tooltip
+                    >
+                      <template slot-scope="scope">
+                        <component
+                          v-if="cAttr.is === 'el-input'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        ></component>
+                        <component
+                          v-else-if="cAttr.is === 'el-popover-select-v2'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          :source.sync="scope.row"
+                          style="width: 100%"
+                          @change="fetchRefer"
+                        >
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-input-number'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        ></component>
+                        <component
+                          v-else-if="cAttr.is === 'el-select'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        >
+                          <el-option
+                            v-for="dict in $dicts[cAttr.dictName]"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          >
+                          </el-option>
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-date-picker'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        >
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-computed-input-v2'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          :source.sync="scope.row"
+                        ></component>
+                        <span v-else> {{ scope.row[cItem.key] }}</span>
+                      </template>
+                    </el-table-column>
+                    <el-table-column fixed="right" label="操作" width="100">
+                      <template slot="header" slot-scope="scope">
+                        <el-button
+                          circle
+                          icon="el-icon-plus"
+                          :size="$attrs.size"
+                          @click="useRowAdd(tabName)"
+                        >
+                        </el-button>
+                      </template>
+                      <template slot-scope="scope">
+                        <el-button
+                          circle
+                          icon="el-icon-minus"
+                          :size="$attrs.size"
+                          @click.native.prevent="useRowRemove(tabName, scope)"
                         >
-                        </el-option>
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-date-picker'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      >
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-computed-input-v2'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        :source.sync="scope.row"
-                      ></component>
-                      <span v-else> {{ scope.row[cItem.key] }}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column fixed="right" label="操作" width="100">
-                    <template slot="header" slot-scope="scope">
-                      <el-button
-                        circle
-                        icon="el-icon-plus"
-                        :size="size"
-                        @click="useRowAdd(tabName)"
-                      >
-                      </el-button>
-                    </template>
-                    <template slot-scope="scope">
-                      <el-button
-                        circle
-                        icon="el-icon-minus"
-                        :size="size"
-                        @click.native.prevent="useRowRemove(tabName, scope)"
-                      >
-                      </el-button>
-                    </template>
-                  </el-table-column>
-                </el-table>
-              </el-tab-pane>
-            </el-tabs>
-          </el-form-item>
-        </el-col>
-      </el-row>
-    </el-form>
-  </el-drawer>
+                        </el-button>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                </el-tab-pane>
+              </el-tabs>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div style="padding: 20px; text-align: right">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
+        >
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useSubmit('ruleForm')"
+          >确 认</el-button
+        >
+      </div>
+    </el-drawer>
+  </el-button>
 </template>

+ 42 - 38
src/views/purchase/contract/column.js

@@ -1,11 +1,11 @@
 import CONFIG from "@/config";
 
 export const TableColumns = [
-  { item: { key: "puOrgName", title: "采购组织" }, attr: { isHidden: true } },
-  { item: { key: "code", title: "合同编码" }, attr: { isHidden: true } },
+  { item: { key: "puOrgName", title: "采购组织" }, attr: {} },
+  { item: { key: "code", title: "合同编码" }, attr: {} },
   {
     item: { key: "status", title: "状态" },
-    attr: { is: "el-dict-tag", dictName: "documents_status", isHidden: true },
+    attr: { is: "el-dict-tag", dictName: "documents_status" },
   },
   {
     item: { key: "lastPuMoney", title: "上年度采购额" },
@@ -17,8 +17,8 @@ export const TableColumns = [
       isHidden: true,
     },
   },
-  { item: { key: "buyerName", title: "采购员" }, attr: { isHidden: true } },
-  { item: { key: "supplierName", title: "供应商" }, attr: { isHidden: true } },
+  { item: { key: "buyerName", title: "采购员" }, attr: {} },
+  { item: { key: "supplierName", title: "供应商" }, attr: {} },
   {
     item: { key: "contractType", title: "合同类型" },
     attr: {
@@ -37,7 +37,7 @@ export const TableColumns = [
       isHidden: true,
     },
   },
-  { item: { key: "puDeptName", title: "采购部门" }, attr: { isHidden: true } },
+  { item: { key: "puDeptName", title: "采购部门" }, attr: {} },
   {
     item: { key: "supplierTier", title: "供应商层级" },
     attr: {
@@ -48,7 +48,7 @@ export const TableColumns = [
   },
   {
     item: { key: "contractName", title: "合同名称" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "grossRateAverage", title: "平均毛利率 (%)" },
@@ -78,7 +78,7 @@ export const TableColumns = [
   },
   {
     item: { key: "effectiveDate", title: "合同生效日期" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "brandGrossRate", title: "同类品牌及毛利率 (%)" },
@@ -100,9 +100,9 @@ export const TableColumns = [
   },
   {
     item: { key: "productName", title: "产品类别&名称" },
-    attr: { isHidden: true },
+    attr: {},
   },
-  { item: { key: "endDate", title: "合同终止日期" }, attr: { isHidden: true } },
+  { item: { key: "endDate", title: "合同终止日期" }, attr: {} },
   {
     item: { key: "invoiceTax", title: "发票税率 (%)" },
     attr: {
@@ -121,7 +121,7 @@ export const TableColumns = [
       isHidden: true,
     },
   },
-  { item: { key: "project", title: "项目医院" }, attr: { isHidden: true } },
+  { item: { key: "project", title: "项目医院" }, attr: {} },
   {
     item: { key: "deliveryType", title: "交货方式" },
     attr: {
@@ -130,14 +130,14 @@ export const TableColumns = [
       isHidden: true,
     },
   },
-  { item: { key: "source", title: "合同来源" }, attr: { isHidden: true } },
+  { item: { key: "source", title: "合同来源" }, attr: {} },
   {
     item: { key: "contractPartycName", title: "合同丙方" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "guaranteePeriodEnd", title: "质保期限" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "freightMethods", title: "运费承担方式" },
@@ -149,75 +149,75 @@ export const TableColumns = [
   },
   {
     item: { key: "signDate", title: "合同创建时间" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "isTarget", title: "是否有指标" },
-    attr: { is: "el-dict-tag", dictName: "sys_yes_no", isHidden: true },
+    attr: { is: "el-dict-tag", dictName: "sys_yes_no" },
   },
   {
     item: { key: "contractTarget", title: "合同指标" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "exemptionPostageCondtion", title: "包邮条件" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "isRebate", title: "是否有返利" },
-    attr: { is: "el-dict-tag", dictName: "sys_yes_no", isHidden: true },
+    attr: { is: "el-dict-tag", dictName: "sys_yes_no" },
   },
   {
     item: { key: "rebatePolicy", title: "返利政策" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "externalContract", title: "外部合同号" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "rollbackPolicy", title: "退换货政策" },
-    attr: { isHidden: true },
+    attr: {},
   },
-  { item: { key: "enquiryCode", title: "询价单号" }, attr: { isHidden: true } },
+  { item: { key: "enquiryCode", title: "询价单号" }, attr: {} },
   {
     item: { key: "contractContent", title: "合同主要内容" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "refusalReasons", title: "拒绝理由" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "pigeonhole", title: "是否归档" },
-    attr: { is: "el-dict-tag", dictName: "sys_yes_no", isHidden: true },
+    attr: { is: "el-dict-tag", dictName: "sys_yes_no" },
   },
   {
     item: { key: "pigeonholeFile", title: "归档附件" },
-    attr: { is: "el-file-preview", isHidden: true },
+    attr: { is: "el-file-preview" },
   },
   {
     item: { key: "externalFile", title: "对外附件" },
-    attr: { is: "el-file-preview", isHidden: true },
+    attr: { is: "el-file-preview" },
   },
   {
     item: { key: "puFile", title: "采购商盖章合同附件" },
-    attr: { is: "el-file-preview", isHidden: true },
+    attr: { is: "el-file-preview" },
   },
   {
     item: { key: "supplierFile", title: "供应商盖章合同附件" },
-    attr: { is: "el-file-preview", isHidden: true },
+    attr: { is: "el-file-preview" },
   },
-  { item: { key: "projectCode", title: "项目编号" }, attr: { isHidden: true } },
-  { item: { key: "projectName", title: "项目名称" }, attr: { isHidden: true } },
-  { item: { key: "area", title: "区域" }, attr: { isHidden: true } },
+  { item: { key: "projectCode", title: "项目编号" }, attr: {} },
+  { item: { key: "projectName", title: "项目名称" }, attr: {} },
+  { item: { key: "area", title: "区域" }, attr: {} },
   {
     item: { key: "consigneePhone", title: "收货人联系方式" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "paymentAgreement", title: "付款协议" },
-    attr: { isHidden: true },
+    attr: {},
   },
   {
     item: { key: "taxPrice", title: "价税合计" },
@@ -229,12 +229,16 @@ export const TableColumns = [
       isHidden: true,
     },
   },
-  { item: { key: "currencyName", title: "币种" }, attr: { isHidden: true } },
+  { item: { key: "currencyName", title: "币种" }, attr: {} },
   {
     item: { key: "guaranteePeriod", title: "质保期" },
-    attr: { isHidden: true },
+    attr: {},
   },
-];
+].map(({ item, attr }) => ({
+  attr,
+  item: { ...item, hidden: true, fixed: false },
+}));
+
 export const FormColumns = [
   {
     item: {

+ 213 - 220
src/views/purchase/contract/edit/index.vue

@@ -11,6 +11,12 @@ import {
 
 export default {
   name: "EditDrawer",
+  props: {
+    selectData: {
+      type: [Array],
+      require: true,
+    },
+  },
   components: {
     ElFileUpload: () => import("@/components/FileUpload/index.vue"),
     ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
@@ -29,8 +35,7 @@ export default {
     const params = initParams([...TabColumns, ...FormColumns]);
     const rules = initRules(FormColumns);
     return {
-      title: "更 新",
-      size: "mini",
+      title: "编 辑",
       width: "100%",
       visible: false,
       loading: false,
@@ -49,8 +54,15 @@ export default {
     },
     $dicts: {
       get() {
-        return this.$parent.$parent.$dicts;
+        return this.$parent.$parent.$parent.dict.type;
+      },
+      set() {},
+    },
+    disabled: {
+      get() {
+        return this.selectData.length !== 1;
       },
+      set() {},
     },
   },
   watch: {},
@@ -190,9 +202,6 @@ export default {
             const TASK = status === "2" ? EDIT : ALTERATION;
             const { msg, code } = await TASK(params);
             if (code === 200) {
-              const { id } = this.params;
-              const { fetchItem } = this.root.$refs.SeeModel;
-              await fetchItem(id);
               this.hide();
               this.$emit("success");
               this.$notify.success(msg);
@@ -209,18 +218,6 @@ export default {
         }
       });
     },
-    //
-    async useAlteration(prop) {
-      await this.root
-        .useAlteration(prop)
-        .then(() => {
-          const [{ id }] = prop;
-          const { fetchItem } = this.root.$refs.SeeModel;
-          this.hide();
-          fetchItem(id);
-        })
-        .catch(() => {});
-    },
   },
   created() {},
   mounted() {},
@@ -228,211 +225,207 @@ export default {
 };
 </script>
 <template>
-  <el-drawer
-    :size="width"
-    :title="title"
-    :show-close="false"
-    :visible.sync="visible"
+  <el-button
+    v-bind="$attrs"
+    v-on="$listeners"
+    :disabled="disabled"
+    @click="open(selectData[0].id)"
   >
-    <template slot="title">
-      <span>{{ title }}</span>
-      <span>
-        <el-tooltip
-          effect="dark"
-          :content="params.status === '2' ? '变 更' : '更 新'"
-          placement="bottom-end"
-        >
-          <el-button
-            :size="size"
-            circle
-            icon="el-icon-check"
-            @click="useSubmit('ruleForm')"
-          >
-          </el-button>
-        </el-tooltip>
-        <el-button
-          :size="size"
-          circle
-          type="danger"
-          icon="el-icon-close"
-          @click="hide"
-        ></el-button>
-      </span>
-    </template>
-    <el-form
-      ref="ruleForm"
-      v-loading="loading"
-      :size="size"
-      :rules="rules"
-      :model="params"
-      label-width="auto"
-      label-position="right"
-      style="padding: 10px"
+    {{ title }}
+    <el-drawer
+      :size="width"
+      :title="title"
+      :visible.sync="visible"
+      append-to-body
+      destroy-on-close
     >
-      <el-row :gutter="20" style="display: flex; flex-wrap: wrap">
-        <el-col
-          v-for="{ item, attr } in FormColumns"
-          :key="item.key"
-          :span="item.span || 6"
-        >
-          <el-form-item :prop="item.key" :label="item.title">
-            <component
-              v-if="attr.is === 'el-input'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            ></component>
-            <component
-              v-if="attr.is === 'el-popover-select-v2'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              :source.sync="params"
-              style="width: 100%"
-            >
-            </component>
-            <component
-              v-if="attr.is === 'el-input-number'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            ></component>
-            <component
-              v-if="attr.is === 'el-select'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            >
-              <el-option
-                v-for="dict in $dicts[attr.dictName]"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
+      <el-form
+        ref="ruleForm"
+        v-loading="loading"
+        :size="$attrs.size"
+        :rules="rules"
+        :model="params"
+        label-width="auto"
+        label-position="right"
+        style="padding: 10px"
+      >
+        <el-row :gutter="20" style="display: flex; flex-wrap: wrap">
+          <el-col
+            v-for="{ item, attr } in FormColumns"
+            :key="item.key"
+            :span="item.span || 6"
+          >
+            <el-form-item :prop="item.key" :label="item.title">
+              <component
+                v-if="attr.is === 'el-input'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
+              ></component>
+              <component
+                v-if="attr.is === 'el-popover-select-v2'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                :source.sync="params"
+                style="width: 100%"
+              >
+              </component>
+              <component
+                v-if="attr.is === 'el-input-number'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
+              ></component>
+              <component
+                v-if="attr.is === 'el-select'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
               >
-              </el-option>
-            </component>
-            <component
-              v-if="attr.is === 'el-date-picker'"
-              v-bind="attr"
-              v-model="params[item.key]"
-              style="width: 100%"
-            >
-            </component>
-            <component
-              v-if="attr.is === 'el-file-upload'"
-              v-bind="attr"
-              v-model="params[item.key]"
-            ></component>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24">
-          <el-form-item label-width="0">
-            <el-tabs v-model="tabName">
-              <el-tab-pane
-                v-for="{ item, attr, TableColumns } in TabColumns"
-                :key="item.key"
-                :label="item.title"
-                :name="item.key"
-                lazy
+                <el-option
+                  v-for="dict in $dicts[attr.dictName]"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                >
+                </el-option>
+              </component>
+              <component
+                v-if="attr.is === 'el-date-picker'"
+                v-bind="attr"
+                v-model="params[item.key]"
+                style="width: 100%"
               >
-                <el-table :size="size" :data="params[item.key]">
-                  <el-table-column label="序号">
-                    <template slot-scope="scope">
-                      {{ scope.$index + 1 }}
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    v-for="{ item: cItem, attr: cAttr } in TableColumns"
-                    :key="cItem.key"
-                    :prop="cItem.key"
-                    :label="cItem.title"
-                    :width="cItem.width || 300"
-                    show-overflow-tooltip
-                  >
-                    <template slot-scope="scope">
-                      <component
-                        v-if="cAttr.is === 'el-input'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      ></component>
-                      <component
-                        v-else-if="cAttr.is === 'el-popover-select-v2'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        :source.sync="scope.row"
-                        style="width: 100%"
-                        @change="fetchRefer"
-                      >
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-input-number'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      ></component>
-                      <component
-                        v-else-if="cAttr.is === 'el-select'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      >
-                        <el-option
-                          v-for="dict in $dicts[cAttr.dictName]"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
+              </component>
+              <component
+                v-if="attr.is === 'el-file-upload'"
+                v-bind="attr"
+                v-model="params[item.key]"
+              ></component>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label-width="0">
+              <el-tabs v-model="tabName">
+                <el-tab-pane
+                  v-for="{ item, attr, TableColumns } in TabColumns"
+                  :key="item.key"
+                  :label="item.title"
+                  :name="item.key"
+                  lazy
+                >
+                  <el-table :size="$attrs.size" :data="params[item.key]">
+                    <el-table-column label="序号">
+                      <template slot-scope="scope">
+                        {{ scope.$index + 1 }}
+                      </template>
+                    </el-table-column>
+                    <el-table-column
+                      v-for="{ item: cItem, attr: cAttr } in TableColumns"
+                      :key="cItem.key"
+                      :prop="cItem.key"
+                      :label="cItem.title"
+                      :width="cItem.width || 300"
+                      show-overflow-tooltip
+                    >
+                      <template slot-scope="scope">
+                        <component
+                          v-if="cAttr.is === 'el-input'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        ></component>
+                        <component
+                          v-else-if="cAttr.is === 'el-popover-select-v2'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          :source.sync="scope.row"
+                          style="width: 100%"
+                          @change="fetchRefer"
+                        >
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-input-number'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        ></component>
+                        <component
+                          v-else-if="cAttr.is === 'el-select'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        >
+                          <el-option
+                            v-for="dict in $dicts[cAttr.dictName]"
+                            :key="dict.value"
+                            :label="dict.label"
+                            :value="dict.value"
+                          >
+                          </el-option>
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-date-picker'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          style="width: 100%"
+                        >
+                        </component>
+                        <component
+                          v-else-if="cAttr.is === 'el-computed-input-v2'"
+                          v-bind="cAttr"
+                          v-model="scope.row[cItem.key]"
+                          :source.sync="scope.row"
+                        ></component>
+                        <span v-else> {{ scope.row[cItem.key] }}</span>
+                      </template>
+                    </el-table-column>
+                    <el-table-column fixed="right" label="操作" width="100">
+                      <template slot="header" slot-scope="scope">
+                        <el-button
+                          circle
+                          icon="el-icon-plus"
+                          :size="$attrs.size"
+                          @click="useRowAdd(tabName)"
                         >
-                        </el-option>
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-date-picker'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        style="width: 100%"
-                      >
-                      </component>
-                      <component
-                        v-else-if="cAttr.is === 'el-computed-input-v2'"
-                        v-bind="cAttr"
-                        v-model="scope.row[cItem.key]"
-                        :source.sync="scope.row"
-                      ></component>
-                      <span v-else> {{ scope.row[cItem.key] }}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column fixed="right" label="操作" width="100">
-                    <template slot="header" slot-scope="scope">
-                      <el-button
-                        circle
-                        icon="el-icon-plus"
-                        :size="size"
-                        @click="useRowAdd(tabName)"
-                      >
-                      </el-button>
-                    </template>
-                    <template slot-scope="scope">
-                      <el-button
-                        circle
-                        icon="el-icon-check"
-                        :size="size"
-                        @click.native.prevent="useRowSubmit(tabName, scope)"
-                      >
-                      </el-button>
-                      <el-button
-                        circle
-                        icon="el-icon-minus"
-                        :size="size"
-                        @click.native.prevent="useRowRemove(tabName, scope)"
-                      >
-                      </el-button>
-                    </template>
-                  </el-table-column>
-                </el-table>
-              </el-tab-pane>
-            </el-tabs>
-          </el-form-item>
-        </el-col>
-      </el-row>
-    </el-form>
-  </el-drawer>
+                        </el-button>
+                      </template>
+                      <template slot-scope="scope">
+                        <el-button
+                          circle
+                          icon="el-icon-check"
+                          :size="$attrs.size"
+                          @click.native.prevent="useRowSubmit(tabName, scope)"
+                        >
+                        </el-button>
+                        <el-button
+                          circle
+                          icon="el-icon-minus"
+                          :size="$attrs.size"
+                          @click.native.prevent="useRowRemove(tabName, scope)"
+                        >
+                        </el-button>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                </el-tab-pane>
+              </el-tabs>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div style="padding: 20px; text-align: right">
+        <el-button :size="$attrs.size" :loading="loading" @click="hide"
+          >取 消</el-button
+        >
+        <el-button
+          type="primary"
+          :size="$attrs.size"
+          :loading="loading"
+          @click="useSubmit('ruleForm')"
+          >确 认</el-button
+        >
+      </div>
+    </el-drawer>
+  </el-button>
 </template>

+ 1 - 1
src/views/purchase/contract/import/index.vue

@@ -108,7 +108,7 @@ export default {
         提示:仅允许导入“xls”或“xlsx”格式文件!
       </div>
     </el-upload>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button type="primary" @click="confirm">确 定</el-button>
       <el-button @click="hide">取 消</el-button>
     </div>

+ 36 - 66
src/views/purchase/contract/index.vue

@@ -10,17 +10,14 @@ export default {
     "puarchase_contract_origin",
   ],
   components: {
-    AddModel: () => import("./add/index.vue"),
-    SeeModel: () => import("./see/index.vue"),
-    EditModel: () => import("./edit/index.vue"),
+    AddButton: () => import("./add/index.vue"),
+    SeeButton: () => import("./see/index.vue"),
+    EditButton: () => import("./edit/index.vue"),
     ExportModel: () => import("./export/index.vue"),
-    // ImportModel: () => import("./import/index.vue"),
     DeleteModel: () => import("./delete/index.vue"),
     TerminationModel: () => import("./termination/index.vue"),
     PigeonholeModel: () => import("./pigeonhole/index.vue"),
     SubmitModel: () => import("./submit/index.vue"),
-    ElHideTableColumnButton: () =>
-      import("@/components/hide-table-column/index.vue"),
     ElSuperTable: () => import("@/components/super-table/index.vue"),
     ElSuperSearch: () => import("@/components/super-search/index.vue"),
   },
@@ -38,11 +35,6 @@ export default {
     };
   },
   computed: {
-    $dicts: {
-      get: function () {
-        return this.dict.type;
-      },
-    },
     $power: {
       get() {
         const {
@@ -112,22 +104,8 @@ export default {
       this.useQuery(this.params, this.page);
     },
     // 选 择
-    useRowClick(prop) {
-      if (!this.batching) this.selectData = prop;
-    },
-    // 选 择
     useSelect(prop) {
-      if (this.batching) this.selectData = prop;
-    },
-    // 批 量
-    useBatch() {
-      this.selectData = [];
-      this.batching = !this.batching;
-    },
-    // 新 增
-    async useAdd(prop) {
-      const { open } = this.$refs.AddModel;
-      await open(prop);
+      this.selectData = prop;
     },
     // 删 除
     async useDelete(prop) {
@@ -135,16 +113,10 @@ export default {
       const { open } = this.$refs.DeleteModel;
       await open(id);
     },
-    // 编 辑
-    async useEdit(prop) {
-      const [{ id }] = prop;
-      const { open } = this.$refs.EditModel;
-      await open(id);
-    },
     // 明 细
     async useSee(prop) {
       const { id } = prop;
-      const { open } = this.$refs.SeeModel;
+      const { open } = this.$refs.SeeButton;
       await open(id);
     },
     // 终 止
@@ -165,11 +137,6 @@ export default {
       const { open } = this.$refs.ExportModel;
       await open({ ...prop, pageNum, pageSize });
     },
-    // 导 入
-    // async useImport() {
-    //   const { open } = this.$refs.ImportModel;
-    //   await open();
-    // },
     // 提交OA
     async useSubmit(prop) {
       const [{ id }] = prop;
@@ -182,9 +149,6 @@ export default {
 
 <template>
   <el-card v-loading="loading" :body-style="{ padding: 0 }">
-    <see-model ref="SeeModel"></see-model>
-    <add-model ref="AddModel" @success="useReset"></add-model>
-    <edit-model ref="EditModel" @success="useQuery(params, page)"></edit-model>
     <export-model ref="ExportModel"></export-model>
     <!-- <import-model ref="ImportModel"></import-model> -->
     <submit-model
@@ -211,14 +175,8 @@ export default {
       @submit="useQuery(params, page)"
     ></el-super-search>
 
-    <div style="padding: 0 20px; display: flex; justify-content: space-between">
-      <div>
-        <el-button :size="size" @click="useQuery(params, page)">
-          查 询
-        </el-button>
-        <el-button :size="size" @click="useReset"> 重 置 </el-button>
-        <el-button :size="size" @click="useAdd('add')"> 新 增 </el-button>
-        <el-button :size="size" @click="useAdd('record')"> 期初补录 </el-button>
+    <!-- <div style="padding: 0 20px; display: flex; justify-content: space-between">
+   
         <el-button :size="size" @click="useExport(params, page)">
           导 出
         </el-button>
@@ -258,15 +216,35 @@ export default {
           归 档
         </el-button>
       </div>
-      <!-- <el-button :size="size" @click="useImport"> 导 入 </el-button> -->
-      <div>
-        <el-button :size="size" @click="useBatch"> 批 量 </el-button>
-        <el-divider direction="vertical"></el-divider>
-        <el-hide-table-column-button
-          v-model="TableColumns"
+      <div></div>
+    </div> -->
+    <div style="padding: 0 20px; text-align: right">
+      <el-button-group style="margin: 0 10px 0 0">
+        <add-button
           :size="size"
-        ></el-hide-table-column-button>
-      </div>
+          :select-data="selectData"
+          @success="useQuery(params, page)"
+        ></add-button>
+        <add-button
+          :size="size"
+          :add-type="'record'"
+          :select-data="selectData"
+          @success="useQuery(params, page)"
+        ></add-button>
+      </el-button-group>
+      <el-button-group>
+        <edit-button
+          :size="size"
+          :select-data="selectData"
+          @success="useQuery(params, page)"
+        ></edit-button>
+        <see-button
+          v-show="false"
+          :size="size"
+          :select-data="selectData"
+          ref="SeeButton"
+        ></see-button
+      ></el-button-group>
     </div>
     <el-super-table
       v-model="tableData"
@@ -275,16 +253,8 @@ export default {
       :columns="TableColumns"
       @row-dblclick="useSee"
       @selection-change="useSelect"
-      @row-click="useRowClick([$event])"
     >
-      <el-table-column
-        v-if="batching"
-        fixed
-        width="55"
-        align="center"
-        type="selection"
-        :selectable="setSelectable"
-      >
+      <el-table-column fixed width="55" align="center" type="selection">
       </el-table-column>
     </el-super-table>
     <pagination

+ 117 - 103
src/views/purchase/contract/see/index.vue

@@ -3,28 +3,34 @@ import useColumns from "./column";
 import { initParams } from "@/utils/init.js";
 import { ITEM } from "@/api/business/purchase/contract";
 
+const {
+  TabColumns,
+  FormColumns,
+  TabColumns: [
+    {
+      item: { key: tabName },
+    },
+  ],
+} = useColumns();
+const params = initParams([...TabColumns, ...FormColumns]);
+
 export default {
   name: "SeeDrawer",
+  props: {
+    selectData: {
+      type: [Array],
+      require: true,
+    },
+  },
   components: {
     ElDictTag: () => import("@/components/DictTag/index.vue"),
     ElFilePreview: () => import("@/components/file-preview/index.vue"),
     ElComputedInputV2: () => import("@/components/computed-input-v2/index.vue"),
   },
   data() {
-    const {
-      TabColumns,
-      FormColumns,
-      TabColumns: [
-        {
-          item: { key: tabName },
-        },
-      ],
-    } = useColumns();
-    const params = initParams([...TabColumns, ...FormColumns]);
     return {
-      column: 3,
-      size: "mini",
-      width: "100%",
+      column: 2,
+      width: "50%",
       title: "明 细",
       visible: false,
       loading: false,
@@ -37,9 +43,15 @@ export default {
   computed: {
     $dicts: {
       get() {
-        return this.$parent.$parent.$dicts;
+        return this.$parent.$parent.$parent.dict.type;
       },
     },
+    disabled: {
+      get() {
+        return this.selectData.length !== 1;
+      },
+      set() {},
+    },
   },
   watch: {},
   methods: {
@@ -88,95 +100,97 @@ export default {
 };
 </script>
 <template>
-  <el-drawer
-    :size="width"
-    :title="title"
-    :show-close="false"
-    :visible.sync="visible"
+  <el-button
+    v-bind="$attrs"
+    v-on="$listeners"
+    :disabled="disabled"
+    @click="open(selectData[0])"
   >
-    <template slot="title">
-      <span>{{ title }}</span>
-      <span>
-        <el-button
-          :size="size"
-          circle
-          type="danger"
-          icon="el-icon-close"
-          @click="hide"
-        ></el-button>
-      </span>
-    </template>
-    <el-descriptions :size="size" :column="column" border style="margin: 10px">
-      <el-descriptions-item
-        v-if="params[item.key]"
-        v-for="{ item, attr } in FormColumns"
-        :key="item.key"
-        :label="item.title"
-        :labelStyle="{ width: '150px' }"
-        :contentStyle="{ width: 'auto' }"
-      >
-        <component
-          v-if="attr.is === 'el-dict-tag'"
-          v-bind="attr"
-          v-model="params[item.key]"
-          :size="size"
-          :options="$dicts[attr.dictName]"
-        ></component>
-        <component
-          v-else-if="attr.is === 'el-file-preview'"
-          v-bind="attr"
-          v-model="params[item.key]"
-        ></component>
-        <component
-          v-else-if="attr.is === 'el-computed-input-v2'"
-          v-bind="attr"
-          v-model="params[item.key]"
-        ></component>
-        <component is="span" v-else>{{ params[item.key] || "--" }}</component>
-      </el-descriptions-item>
-    </el-descriptions>
-    <el-tabs v-model="tabName" :size="size" style="margin: 10px">
-      <el-tab-pane
-        v-for="{ item, TableColumns } in TabColumns"
-        :key="item.key"
-        :name="item.key"
-        :label="item.title"
-        lazy
+    {{ title }}
+    <el-drawer
+      :size="width"
+      :title="title"
+      :show-close="false"
+      :visible.sync="visible"
+      append-to-body
+    >
+      <el-descriptions
+        :size="$attrs.size"
+        :column="column"
+        border
+        style="margin: 10px"
       >
-        <el-table :size="size" :data="params[item.key]">
-          <el-table-column
-            v-for="{ item: cItem, attr: cAttr } in TableColumns"
-            :key="cItem.key"
-            :prop="cItem.key"
-            :label="cItem.title"
-            :width="cItem.width || 300"
-            show-overflow-tooltip
-          >
-            <template slot-scope="scope">
-              <component
-                v-if="cAttr.is === 'el-dict-tag'"
-                v-bind="cAttr"
-                v-model="scope.row[cItem.key]"
-                :size="size"
-                :options="$dicts[cAttr.dictName]"
-              ></component>
-              <component
-                v-else-if="cAttr.is === 'el-file-preview'"
-                v-bind="cAttr"
-                v-model="scope.row[cItem.key]"
-              ></component>
-              <component
-                v-else-if="cAttr.is === 'el-computed-input-v2'"
-                v-bind="cAttr"
-                v-model="scope.row[cItem.key]"
-              ></component>
-              <component is="span" v-else>{{
-                scope.row[cItem.key] || "--"
-              }}</component>
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-tab-pane>
-    </el-tabs>
-  </el-drawer>
+        <el-descriptions-item
+          v-if="params[item.key]"
+          v-for="{ item, attr } in FormColumns"
+          :key="item.key"
+          :label="item.title"
+          :labelStyle="{ width: '150px' }"
+          :contentStyle="{ width: 'auto' }"
+        >
+          <component
+            v-if="attr.is === 'el-dict-tag'"
+            v-bind="attr"
+            v-model="params[item.key]"
+            :size="$attrs.size"
+            :options="$dicts[attr.dictName]"
+          ></component>
+          <component
+            v-else-if="attr.is === 'el-file-preview'"
+            v-bind="attr"
+            v-model="params[item.key]"
+          ></component>
+          <component
+            v-else-if="attr.is === 'el-computed-input-v2'"
+            v-bind="attr"
+            v-model="params[item.key]"
+          ></component>
+          <component is="span" v-else>{{ params[item.key] }}</component>
+        </el-descriptions-item>
+      </el-descriptions>
+      <el-tabs v-model="tabName" :size="$attrs.size" style="margin: 10px">
+        <el-tab-pane
+          v-for="{ item, TableColumns } in TabColumns"
+          :key="item.key"
+          :name="item.key"
+          :label="item.title"
+          lazy
+        >
+          <el-table :size="$attrs.size" :data="params[item.key]">
+            <el-table-column
+              v-for="{ item: cItem, attr: cAttr } in TableColumns"
+              :key="cItem.key"
+              :prop="cItem.key"
+              :label="cItem.title"
+              :width="cItem.width || 300"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <component
+                  v-if="cAttr.is === 'el-dict-tag'"
+                  v-bind="cAttr"
+                  v-model="scope.row[cItem.key]"
+                  :size="$attrs.size"
+                  :options="$dicts[cAttr.dictName]"
+                ></component>
+                <component
+                  v-else-if="cAttr.is === 'el-file-preview'"
+                  v-bind="cAttr"
+                  v-model="scope.row[cItem.key]"
+                ></component>
+                <component
+                  v-else-if="cAttr.is === 'el-computed-input-v2'"
+                  v-bind="cAttr"
+                  v-model="scope.row[cItem.key]"
+                ></component>
+                <component is="span" v-else>{{
+                  scope.row[cItem.key] || "--"
+                }}</component>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+      </el-tabs>
+    </el-drawer>
+  </el-button>
 </template>

+ 0 - 2
src/views/purchase/task/column.js

@@ -77,8 +77,6 @@ export const TableColumns = [
   item: { ...item, hidden: true, fixed: false },
 }));
 
-console.log("t", TableColumns);
-
 export const SearchColumns = [
   {
     item: {

+ 1 - 1
src/views/purchase/task/dao-chu/index.vue

@@ -64,7 +64,7 @@ export default {
       append-to-body
       @close="hide"
     >
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           :size="$attrs.size"
           :loading="loading"

+ 4 - 9
src/views/purchase/task/index.vue

@@ -7,7 +7,6 @@ export default {
   name: "PuchaseTask",
   dicts: [...initDicts([...TableColumns, ...SearchColumns])],
   components: {
-    // CloseModel: () => import("./close/index.vue"),
     DcButton: () => import("./dao-chu/index.vue"),
     MxButton: () => import("./ming-xi/index.vue"),
     ZpButton: () => import("./zhuan-pai/index.vue"),
@@ -28,13 +27,7 @@ export default {
       page: { pageNum: 1, pageSize: 10, total: 0 },
     };
   },
-  computed: {
-    $dicts: {
-      get: function () {
-        return this.dict.type;
-      },
-    },
-  },
+  computed: {},
   watch: {},
   created() {
     this.useQuery(this.params, this.page);
@@ -139,7 +132,7 @@ export default {
           @success="useQuery(params, page)"
         ></xyzc-button>
       </el-button-group>
-      <el-button-group>
+      <el-button-group style="margin: 0 10px 0 0">
         <zp-button
           :size="size"
           :select-data="selectData"
@@ -153,6 +146,8 @@ export default {
           ref="mingxi"
           @success="useQuery(params, page)"
         ></mx-button>
+      </el-button-group>
+      <el-button-group>
         <dc-button
           :size="size"
           :page="page"

+ 13 - 10
src/views/purchase/task/ming-xi/index.vue

@@ -11,7 +11,9 @@ export default {
       require: true,
     },
   },
-  components: {},
+  components: {
+    ElDictTag: () => import("@/components/DictTag/index.vue"),
+  },
   data() {
     return {
       title: "明 细",
@@ -83,18 +85,19 @@ export default {
         style="margin: 10px"
       >
         <el-descriptions-item
-          v-if="params[column.item.key]"
-          v-for="(column, index) in columns"
+          v-if="params[item.key]"
+          v-for="({ item, attr }, index) in columns"
           :key="index"
-          :label="column.item.title"
+          :label="item.title"
         >
-          <dict-tag
-            v-if="column.attr.dictName"
+          <component
+            v-if="attr.is === 'el-dict-tag'"
+            v-bind="attr"
+            v-model="params[item.key]"
             :size="$attrs.size"
-            :value="params[column.item.key]"
-            :options="dict.type[column.attr.dictName]"
-          />
-          <span v-else>{{ params[column.item.key] }}</span>
+            :options="dict.type[attr.dictName]"
+          ></component>
+          <component is="span" v-else>{{ params[item.key] }}</component>
         </el-descriptions-item>
       </el-descriptions>
     </el-drawer>

+ 1 - 1
src/views/purchase/task/tui-hui-xu-qiu/index.vue

@@ -83,7 +83,7 @@ export default {
       append-to-body
       @close="hide"
     >
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           :size="$attrs.size"
           :loading="loading"

+ 1 - 1
src/views/purchase/task/zhuan-pai/index.vue

@@ -88,7 +88,7 @@ export default {
       append-to-body
       @close="hide"
     >
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button
           :size="$attrs.size"
           :loading="loading"

+ 1 - 1
src/views/system/config/index.vue

@@ -172,7 +172,7 @@
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/dept/index.vue

@@ -149,7 +149,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/dict/data.vue

@@ -181,7 +181,7 @@
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/dict/index.vue

@@ -179,7 +179,7 @@
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/menu/index.vue

@@ -266,7 +266,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/notice/index.vue

@@ -161,7 +161,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/post/index.vue

@@ -148,7 +148,7 @@
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 2 - 2
src/views/system/role/index.vue

@@ -285,7 +285,7 @@
           ></el-input>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -344,7 +344,7 @@
           ></el-tree>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitDataScope">确 定</el-button>
         <el-button @click="cancelDataScope">取 消</el-button>
       </div>

+ 1 - 1
src/views/system/role/selectUser.vue

@@ -49,7 +49,7 @@
         @pagination="getList"
       />
     </el-row>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button type="primary" @click="handleSelectUser">确 定</el-button>
       <el-button @click="visible = false">取 消</el-button>
     </div>

+ 1 - 1
src/views/system/task/index.vue

@@ -112,7 +112,7 @@
           <el-input v-model="form.name" placeholder="请输入名称" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>

+ 2 - 2
src/views/system/user/index.vue

@@ -302,7 +302,7 @@
           </el-col>
         </el-row>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -332,7 +332,7 @@
           <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
         </div>
       </el-upload>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer">
         <el-button type="primary" @click="submitFileForm">确 定</el-button>
         <el-button @click="upload.open = false">取 消</el-button>
       </div>

+ 1 - 1
src/views/tool/gen/importTable.vue

@@ -39,7 +39,7 @@
         @pagination="getList"
       />
     </el-row>
-    <div slot="footer" class="dialog-footer">
+    <div slot="footer">
       <el-button type="primary" @click="handleImportTable">确 定</el-button>
       <el-button @click="visible = false">取 消</el-button>
     </div>