Quellcode durchsuchen

更新参照代码

002390 vor 2 Jahren
Ursprung
Commit
fc52dadda4
35 geänderte Dateien mit 585 neuen und 2213 gelöschten Zeilen
  1. 0 18
      src/components/input-dialog/api/index.js
  2. 0 22
      src/components/input-dialog/components/ALLOCATION_PARAM.js
  3. 0 21
      src/components/input-dialog/components/BALATYPE_PARAM.js
  4. 0 15
      src/components/input-dialog/components/CONTACTS_PARAM.js
  5. 0 30
      src/components/input-dialog/components/CURRENCY_PARAM.js
  6. 0 22
      src/components/input-dialog/components/CUSTOMERDEPT_PARAM.js
  7. 0 21
      src/components/input-dialog/components/CUSTOMER_PARAM.js
  8. 0 14
      src/components/input-dialog/components/DEPT_PARAM.js
  9. 0 14
      src/components/input-dialog/components/MATERIAL_PARAM.js
  10. 0 21
      src/components/input-dialog/components/OPERATING_PARAM.js
  11. 0 14
      src/components/input-dialog/components/ORG_PARAM.js
  12. 0 14
      src/components/input-dialog/components/PAYAGREEMENT_PARAM.js
  13. 0 21
      src/components/input-dialog/components/PROCESSTYPE_PARAM.js
  14. 0 21
      src/components/input-dialog/components/PROJECT_PARAM.js
  15. 0 21
      src/components/input-dialog/components/PSNLICENSE_PARAM.js
  16. 0 21
      src/components/input-dialog/components/RETREASON_PARAM.js
  17. 0 21
      src/components/input-dialog/components/SUPPLIERCONTACTS_PARAM.js
  18. 0 14
      src/components/input-dialog/components/SUPPLIER_PARAM.js
  19. 0 29
      src/components/input-dialog/components/WAREHOUSE_PARAM.js
  20. 0 186
      src/components/input-dialog/components/index.vue
  21. 0 12
      src/components/input-dialog/components/init-column.js
  22. 0 62
      src/components/input-dialog/index.js
  23. 0 97
      src/components/input-dialog/index.vue
  24. 14 44
      src/components/popover-select/index.vue
  25. 121 202
      src/views/business/spd/bo/basic/details.vue
  26. 68 200
      src/views/purchase/apply/add/index.vue
  27. 69 201
      src/views/purchase/apply/edit/index.vue
  28. 68 200
      src/views/purchase/catalogue/add/index.vue
  29. 68 200
      src/views/purchase/catalogue/edit/index.vue
  30. 76 202
      src/views/purchase/contract/add/index.vue
  31. 68 200
      src/views/purchase/contract/edit/index.vue
  32. 21 21
      src/views/purchase/purchase-order/add/column.js
  33. 5 5
      src/views/purchase/purchase-order/add/index.vue
  34. 5 5
      src/views/purchase/purchase-order/edit/index.vue
  35. 2 2
      vue.config.js

+ 0 - 18
src/components/input-dialog/api/index.js

@@ -1,18 +0,0 @@
-import request from "@/utils/request";
-
-export function list(url, params) {
-  return request({
-    url: `/pu/contract/${url}/list`,
-    method: "get",
-    params: params,
-  });
-}
-
-export function refer(data, params) {
-  return request({
-    url: "/refer/query",
-    method: "POST",
-    data: data,
-    params: params,
-  });
-}

+ 0 - 22
src/components/input-dialog/components/ALLOCATION_PARAM.js

@@ -1,22 +0,0 @@
-// 货位
-export default [
-  // 树
-  {
-    key: "id",
-    title: "ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "货位",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/BALATYPE_PARAM.js

@@ -1,21 +0,0 @@
-// 结算方式
-export default [
-  {
-    key: "id",
-    title: "结算方式ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "结算方式",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 15
src/components/input-dialog/components/CONTACTS_PARAM.js

@@ -1,15 +0,0 @@
-// 联系人部门
-export default [
-  {
-    key: "code",
-    title: "人员编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "人员名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 30
src/components/input-dialog/components/CURRENCY_PARAM.js

@@ -1,30 +0,0 @@
-export default [
-  {
-    key: "name",
-    title: "币种",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "币种简称",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "",
-    title: "单价精度",
-  },
-  {
-    key: "",
-    title: "单价舍入规则",
-  },
-  {
-    key: "",
-    title: "金额精度",
-  },
-  {
-    key: "",
-    title: "金额舍入规则",
-  },
-];

+ 0 - 22
src/components/input-dialog/components/CUSTOMERDEPT_PARAM.js

@@ -1,22 +0,0 @@
-// 客户部门
-export default [
-  {
-    key: "id",
-    title: "客户部门ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "客户部门编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "客户部门名称",
-    type: "Input",
-    search: true,
-  },
-];
-

+ 0 - 21
src/components/input-dialog/components/CUSTOMER_PARAM.js

@@ -1,21 +0,0 @@
-// 收货客户
-export default [
-  {
-    key: "id",
-    title: "收货客户ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "收货客户编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "收货客户名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 14
src/components/input-dialog/components/DEPT_PARAM.js

@@ -1,14 +0,0 @@
-export default [
-  {
-    key: "code",
-    title: "组织编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "组织名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 14
src/components/input-dialog/components/MATERIAL_PARAM.js

@@ -1,14 +0,0 @@
-export default [
-  {
-    key: "code",
-    title: "物料编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "物料名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/OPERATING_PARAM.js

@@ -1,21 +0,0 @@
-// 经营性项目
-export default [
-  {
-    key: "id",
-    title: "经营性项目ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "经营性项目编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "经营性项目名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 14
src/components/input-dialog/components/ORG_PARAM.js

@@ -1,14 +0,0 @@
-export default [
-    {
-      key: "code",
-      title: "组织编码",
-      type: "Input",
-      search: true,
-    },
-    {
-      key: "name",
-      title: "组织名称",
-      type: "Input",
-      search: true,
-    },
-  ]

+ 0 - 14
src/components/input-dialog/components/PAYAGREEMENT_PARAM.js

@@ -1,14 +0,0 @@
-export default [
-  {
-    key: "code",
-    title: "付款协议编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "付款协议名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/PROCESSTYPE_PARAM.js

@@ -1,21 +0,0 @@
-// 处理方式
-export default [
-  // {
-  //   key: "id",
-  //   title: "ID",
-  //   type: "Input",
-  //   search: true,
-  // },
-  {
-    key: "code",
-    title: "编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "处理方式",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/PROJECT_PARAM.js

@@ -1,21 +0,0 @@
-// 在建工程项目
-export default [
-  {
-    key: "id",
-    title: "在建工程项目ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "在建工程项目编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "在建工程项目名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/PSNLICENSE_PARAM.js

@@ -1,21 +0,0 @@
-// 处理方式
-export default [
-  // {
-  //   key: "id",
-  //   title: "ID",
-  //   type: "Input",
-  //   search: true,
-  // },
-  {
-    key: "code",
-    title: "编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "处理方式",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/RETREASON_PARAM.js

@@ -1,21 +0,0 @@
-// 退换原因
-export default [
-  {
-    key: "id",
-    title: "退换原因ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "退换原因编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "退换原因",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 21
src/components/input-dialog/components/SUPPLIERCONTACTS_PARAM.js

@@ -1,21 +0,0 @@
-// 供应商联系人
-export default [
-  {
-    key: "id",
-    title: "ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "供应商联系人名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 14
src/components/input-dialog/components/SUPPLIER_PARAM.js

@@ -1,14 +0,0 @@
-export default [
-  {
-    key: "code",
-    title: "供应商编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "供应商名称",
-    type: "Input",
-    search: true,
-  },
-];

+ 0 - 29
src/components/input-dialog/components/WAREHOUSE_PARAM.js

@@ -1,29 +0,0 @@
-// 收货仓库
-export default [
-  {
-    key: "id",
-    title: "仓库ID",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "code",
-    title: "仓库编码",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "name",
-    title: "仓库名称",
-    type: "Input",
-    search: true,
-  },
-  {
-    key: "",
-    title: "备注",
-  },
-  {
-    key: "",
-    title: "助记码",
-  },
-];

+ 0 - 186
src/components/input-dialog/components/index.vue

@@ -1,186 +0,0 @@
-<script>
-import { refer } from "../api/index";
-import { initParams } from "@/utils/init";
-import InitColumnHooks from "./init-column";
-
-export default {
-  name: "InputDialog",
-  props: ["type", "title", "queryParams"],
-  components: {},
-  data() {
-    const { type } = this.$props;
-    const { TableColumns, SearchColumns } = InitColumnHooks(type);
-    return {
-      // global
-      size: "mini",
-      width: "50%",
-      showKey: "name",
-      page: { pageNum: 1, pageSize: 25, total: 0 },
-      layout: "total, prev, pager, next, sizes, jumper",
-      pageSizes: [25, 50, 100],
-      // dialog
-      visible: false,
-      loading: false,
-      // search
-      params: { search: "" },
-      searchColumns: SearchColumns,
-      // table
-      data: [],
-      tableColumns: TableColumns,
-      currentData: null,
-    };
-  },
-  computed: {},
-  watch: {},
-  methods: {
-    // set dialog visible
-    setVisible(prop) {
-      this.visible = prop;
-    },
-    // do something before dialog open
-    beforeOpen() {
-      this.fetchList(this.params, this.page);
-    },
-    // fetch table data
-    async fetchList(prop, page) {
-      try {
-        this.loading = true;
-        const { pageNum, pageSize } = page;
-        const { type, queryParams } = this.$props;
-        const { code, msg, rows, total } = await refer(
-          {
-            type: type,
-            isPage: true,
-            ...prop,
-            ...queryParams,
-          },
-          
-          { pageNum, pageSize }
-        );
-        if (code === 200) {
-          this.data = rows;
-          this.page.total = total;
-          this.$notify.success({ title: msg });
-        } else {
-          this.$notify.warning({ title: msg });
-        }
-      } catch (err) {
-        this.$notify.error({ title: "error", message: err });
-      } finally {
-        this.loading = false;
-      }
-    },
-    // setting up to fetch table data
-    queryList() {
-      this.fetchList(this.params, this.page);
-    },
-    // reset to fetch table data
-    resetList() {
-      this.page.pageNum = 1;
-      this.params = initParams(this.searchColumns);
-      this.fetchList(this.params, this.page);
-    },
-    // size change to fetch table data
-    pageSizeChange(prop) {
-      this.page.pageSize = prop;
-      this.fetchList(this.params, this.page);
-    },
-    // number change to fetch table data
-    pageNumberChange(prop) {
-      this.page.pageNum = prop;
-      this.fetchList(this.params, this.page);
-    },
-    // click select row data
-    clickSelectCurrentData(row) {
-      this.currentData = row;
-    },
-    // double click select row data and confirm
-    dblclickSelectCurrentData(row) {
-      this.confirm(row);
-    },
-    //
-    confirm(prop) {
-      if (prop) {
-        this.$emit("confirm", prop);
-      }
-      this.setVisible(false);
-    },
-  },
-  created() {},
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<template>
-  <el-dialog
-    :title="title"
-    :visible.sync="visible"
-    :width="width"
-    append-to-body
-    @open="beforeOpen"
-  >
-    <el-form :size="size" :inline="true" :model="params" @submit.native.prevent>
-      <el-form-item prop="search">
-        <el-input
-          v-model="params.search"
-          @keydown.enter="queryList"
-          @change="queryList"
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button icon="el-icon-refresh" @click="resetList"></el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      v-loading="loading"
-      :data="data"
-      :size="size"
-      height="45vh"
-      highlight-current-row
-      style="width: 100%; margin-bottom: 20px"
-      @row-click="clickSelectCurrentData"
-      @row-dblclick="dblclickSelectCurrentData"
-    >
-      <el-table-column
-        v-for="(column, index) in tableColumns"
-        :key="index"
-        :prop="column.key"
-        :label="column.title"
-        :width="column.width"
-        show-overflow-tooltip
-      >
-      </el-table-column>
-    </el-table>
-    <div
-      style="display: flex; justify-content: space-between; align-items: center"
-    >
-      <p>
-        <span style="font-size: 12px">已选择 :</span>
-        <el-tag v-if="currentData" :size="size">{{
-          currentData[showKey]
-        }}</el-tag>
-        <span v-else>无</span>
-      </p>
-      <el-pagination
-        :layout="layout"
-        :total="page.total"
-        :page-sizes="pageSizes"
-        :page-size="page.pageSize"
-        :current-page="page.pageNum"
-        :small="size === 'mini'"
-        background
-        @size-change="pageSizeChange"
-        @current-change="pageNumberChange"
-      >
-      </el-pagination>
-    </div>
-    <div style="margin-top: 20px; text-align: right">
-      <el-button :size="size" @click="visible = false">取 消</el-button>
-      <el-button :size="size" type="primary" @click="confirm(currentData)"
-        >确 定</el-button
-      >
-    </div>
-  </el-dialog>
-</template>
-<style scoped></style>

+ 0 - 12
src/components/input-dialog/components/init-column.js

@@ -1,12 +0,0 @@
-export default function InitColumnsHooks(prop) {
-  //
-  const TableColumns = require(`./${prop}`).default.filter(
-    (element) => element.key
-  );
-  //
-  const SearchColumns = require(`./${prop}`).default.filter(
-    (element) => element.search
-  );
-  //
-  return { TableColumns, SearchColumns };
-}

+ 0 - 62
src/components/input-dialog/index.js

@@ -1,62 +0,0 @@
-const arr2obj = (data, keyName, valueName) =>
-  Object.fromEntries(data.map((item) => [item[keyName], item[valueName]]));
-
-export const initColumns = (
-  arr,
-  prop = { disabled: false, readonly: false, clearable: false }
-) => {
-  return arr.map((element) => {
-    element.config = element.config || {};
-    if (element.type === "Input") {
-    }
-    if (element.type === "InputDialog") {
-      prop.readonly = true;
-    }
-    if (element.type === "InputNumber") {
-      element.config = { controlsPosition: "right", ...element.config };
-    }
-    if (element.type === "Select") {
-    }
-    if (element.type === "DatePicker") {
-      element.config = { type: "date", ...element.config };
-    }
-    if (element.type === "Upload") {
-      element.value = [];
-    }
-    return { ...element, ...prop };
-  });
-};
-
-// 初始化参数
-export const initParams = (prop, key = "key", value = "value") =>
-  arr2obj(prop, key, value);
-// 初始化字典
-export const initDicts = (prop) =>
-  prop
-    .filter((column) => column.type === "Select")
-    .map((column) => column.config.optionsName);
-// 初始化校验
-export const initRules = (prop) => {
-  const rules = {};
-  prop
-    .filter((column) => column.require)
-    .forEach((column) => {
-      const message = `${column.title}不能为空`;
-      rules[column.key] = [
-        { required: true, message: message, trigger: "change" },
-      ];
-    });
-  return rules;
-};
-
-const pageSizes = [25, 50, 100];
-
-const layout = "total, prev, pager, next, sizes, jumper";
-
-const page = { pageNum: 1, pageSize: 25, total: 0 };
-
-export const initPageSizes = () => pageSizes;
-
-export const initLayout = () => layout;
-
-export const initPage = () => page;

+ 0 - 97
src/components/input-dialog/index.vue

@@ -1,97 +0,0 @@
-<script>
-export default {
-  name: "DrInputDialog",
-  props: {
-    // 参照类型 ,对应后端
-    type: {
-      type: String,
-      require: true,
-    },
-    // Input显示数据
-    value: {
-      type: String,
-      require: true,
-    },
-    // 需映射源数据
-    source: {
-      type: Object,
-      require: true,
-    },
-    // 参照内外映射
-    dataMapping: {
-      type: Object,
-      require: true,
-    },
-    // 参照弹窗标题
-    title: {
-      type: String,
-      default: "TITLE",
-    },
-    // 默认查询参数
-    queryParams: {
-      type: Object,
-      default: () => ({}),
-    },
-    //
-    size: String,
-    //
-    readonly: Boolean,
-    //
-    disabled: Boolean,
-    //
-    clearable: Boolean,
-    //
-    placeholder: String,
-  },
-  components: {
-    InputDialog: () => import("./components/index.vue"),
-  },
-  data() {
-    return {};
-  },
-  computed: {},
-  watch: {},
-  methods: {
-    // 处理默认传参
-    handleMakeQueryParams() {
-      const newQueryParams = {}
-      const { source, queryParams } = this.$props;
-      for (let key in queryParams) {
-        newQueryParams[key] = queryParams[key] === key ? source[queryParams[key]] : queryParams[key]
-      }
-      return newQueryParams
-    },
-    // 打开弹窗
-    handleAsyncOpenDialog() {
-      this.$nextTick(() => {
-        const { setVisible } = this.$refs.InputDialogFef;
-        setVisible(true);
-      });
-    },
-    // 更新映射数据
-    handleUpdateSource(prop) {
-      const { source, dataMapping } = this.$props;
-      for (let key in dataMapping) {
-        source[key] = prop[dataMapping[key]];
-      }
-      this.$emit("update:source", source);
-    },
-  },
-  created() {
-    this.handleMakeQueryParams()
-  },
-  mounted() { },
-  destroyed() { },
-};
-</script>
-<template>
-  <el-input v-model="value" :size="size" :readonly="readonly" :disabled="disabled" :clearable="clearable"
-    :placeholder="placeholder" style="width: 100%; cursor: pointer" @click.native.stop="handleAsyncOpenDialog">
-    <template #suffix>
-      <el-icon class="el-icon-milk-tea"></el-icon>
-      <input-dialog ref="InputDialogFef" :type="type" :title="title" :queryParams="handleMakeQueryParams()"
-        @confirm="handleUpdateSource"></input-dialog>
-    </template>
-  </el-input>
-</template>
-<style scoped></style>

+ 14 - 44
src/components/popover-select/index.vue

@@ -62,6 +62,7 @@ export default {
     // 参照内外映射
     dataMapping: Object,
   },
+  emits: ['hide'],
   components: {
     TableDialog: () => import("./components/index.vue"),
   },
@@ -99,6 +100,7 @@ export default {
     handleAdd(prop) {
       this.data = prop;
       this.handleUpdate(this.data);
+      this.$emit('hide', prop)
     },
     // 删除操作
     handleDelete(prop) {
@@ -134,77 +136,45 @@ export default {
       this.width = clientWidth;
     });
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
   <div ref="PopoverSelect" style="position: relative">
-    <el-input
-      v-model="showValue"
-      :size="size"
-      :disabled="disabled"
-      :clearable="clearable"
-      :placeholder="placeholder"
-      readonly
-      style="width: 100%; cursor: pointer"
-      @click.native.stop="handleAsyncOpenDialog"
-    >
+    <el-input v-model="showValue" :size="size" :disabled="disabled" :clearable="clearable" :placeholder="placeholder"
+      readonly style="width: 100%; cursor: pointer" @click.native.stop="handleAsyncOpenDialog">
       <template #suffix>
         <el-icon class="el-icon-more"></el-icon>
       </template>
     </el-input>
-    <div
-      v-if="multiple && data.length"
-      style="
+    <div v-if="multiple && data.length" style="
         position: absolute;
         left: 10px;
         top: 50%;
         transform: translateY(-50%);
         padding-right: 30px;
         overflow: hidden;
-      "
-    >
+      ">
       <div style="width: 150px; display: flex">
-        <el-popover
-          :offset="-10"
-          :width="width"
-          :visible-arrow="false"
-          title=""
-          content=""
-          trigger="click"
-          placement="bottom-start"
-        >
+        <el-popover :offset="-10" :width="width" :visible-arrow="false" title="" content="" trigger="click"
+          placement="bottom-start">
           <el-tag slot="reference" :size="size" style="margin-right: 10px">
             + {{ data.length }}
           </el-tag>
-          <el-tag
-            v-for="(item, index) in data"
-            :size="size"
-            hit
-            closable
-            style="
+          <el-tag v-for="(item, index) in data" :size="size" hit closable style="
               display: flex;
               justify-content: space-between;
               align-items: center;
               margin: 0 0 5px 0;
-            "
-            @close="handleDelete(index)"
-          >
+            " @close="handleDelete(index)">
             {{ item.name }}
           </el-tag>
         </el-popover>
       </div>
     </div>
-    <table-dialog
-      v-model="data"
-      ref="TableDialogFef"
-      :type="type"
-      :title="title"
-      :multiple="multiple"
-      :queryParams="queryParams"
-      @confirm="handleAdd"
-    ></table-dialog>
+    <table-dialog v-model="data" ref="TableDialogFef" :type="type" :title="title" :multiple="multiple"
+      :queryParams="queryParams" @confirm="handleAdd"></table-dialog>
   </div>
 </template>
 <style scoped></style>

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

@@ -5,74 +5,42 @@
     <el-row type="flex" class="row-bg" justify="space-around">
       <el-col :span="4">
         <div class="grid-content bg-purple">
-          <el-button
-            type="info"
-            plain
-            icon="el-icon-back"
-            size="small"
-            @click="handleBack"
-            >返回</el-button
-          >
+          <el-button type="info" plain icon="el-icon-back" size="small" @click="handleBack">返回</el-button>
         </div>
       </el-col>
       <el-col :span="16">
         <div class="grid-content bg-purple-light">
           <el-descriptions :colon="false" :size="medium">
             <el-descriptions-item>
-                <dev style="width: 200px; height: 60px; font-size: 18px" v-show="!showCustomer">{{form.basic.boName.split('-')[0] + '-' + form.basic.boName.split('-')[1].substring(0,2) + '******' + form.basic.boName.split('-')[1].substring(form.basic.boName.split('-')[1].length - 2,form.basic.boName.split('-')[1].length) + '-' + form.basic.boName.split('-')[2]}}</dev>
-                <dev style="width: 200px; height: 60px; font-size: 18px" v-show="showCustomer">{{form.basic.boName}}</dev>
-                <el-button size="mini" type="text" icon="el-icon-view" @click="customerButton"/>
+              <dev style="width: 200px; height: 60px; font-size: 18px" v-show="!showCustomer">
+                {{ form.basic.boName.split('-')[0] + '-' + form.basic.boName.split('-')[1].substring(0, 2) + '******' +
+                  form.basic.boName.split('-')[1].substring(form.basic.boName.split('-')[1].length -
+                    2, form.basic.boName.split('-')[1].length) + '-' + form.basic.boName.split('-')[2] }}</dev>
+              <dev style="width: 200px; height: 60px; font-size: 18px" v-show="showCustomer">{{ form.basic.boName }}</dev>
+              <el-button size="mini" type="text" icon="el-icon-view" @click="customerButton" />
             </el-descriptions-item>
             <el-descriptions-item label="商机状态:" style="margin-left:27px">
               <div v-for="dict in dict.type.mk_bo_state" v-if="form.basic.boState == dict.value">
-                <div>{{dict.label}}</div>
+                <div>{{ dict.label }}</div>
               </div>
             </el-descriptions-item>
             <el-descriptions-item label="赢丢单状态:">
               <div v-for="dict in dict.type.mk_bo_winstate" v-if="form.basic.winningState == dict.value">
-                {{dict.label}}
+                {{ dict.label }}
               </div>
             </el-descriptions-item>
           </el-descriptions>
         </div>
       </el-col>
       <el-col :span="6">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-delete-solid"
-          size="small"
-          @click="handleWinningState('1','关闭')"
-          v-if="(showClose && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boClose"
-          >关闭</el-button
-        >
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-close"
-          size="small"
-          @click="handleWinningState('2','丢单')"
-          v-if="(showLose && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boLose"
-          >丢单</el-button
-        >
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-check"
-          size="small"
-          @click="handleWinningState('3','赢单')"
-          v-if="(showWin && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boWin"
-          >赢单</el-button
-        >
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-user"
-          size="small"
-          @click="allocation()"
-          v-if="this.boAuthority.post == 0 && this.form.basic.winningState == 0"
-          >分配</el-button
-        >
+        <el-button type="info" plain icon="el-icon-delete-solid" size="small" @click="handleWinningState('1', '关闭')"
+          v-if="(showClose && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boClose">关闭</el-button>
+        <el-button type="info" plain icon="el-icon-close" size="small" @click="handleWinningState('2', '丢单')"
+          v-if="(showLose && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boLose">丢单</el-button>
+        <el-button type="info" plain icon="el-icon-check" size="small" @click="handleWinningState('3', '赢单')"
+          v-if="(showWin && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boWin">赢单</el-button>
+        <el-button type="info" plain icon="el-icon-user" size="small" @click="allocation()"
+          v-if="this.boAuthority.post == 0 && this.form.basic.winningState == 0">分配</el-button>
       </el-col>
     </el-row>
     <!-- 主多页签 -->
@@ -82,7 +50,8 @@
         <el-divider content-position="left" style="font-size: 30px">
           <dev style="width: 50px; height: 40px; font-size: 18px">项目流程</dev>
         </el-divider>
-        <Process :key="timer" :form="form.basic" :boAuthority="boAuthority" :boStage="boStage" :dict="dict" @reload="reload"/>
+        <Process :key="timer" :form="form.basic" :boAuthority="boAuthority" :boStage="boStage" :dict="dict"
+          @reload="reload" />
         <!-- 基本信息 -->
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">基本信息</dev>
@@ -90,36 +59,37 @@
         <el-descriptions>
           <el-descriptions-item label="商机来源">
             <div v-for="dict in dict.type.mk_bo_source" v-if="form.basic.boSource == dict.value">
-              {{dict.label}}
+              {{ dict.label }}
             </div>
           </el-descriptions-item>
           <el-descriptions-item label="商机类型">
             <div v-for="dict in dict.type.mk_bo_type" v-if="form.basic.boType == dict.value">
-              {{dict.label}}
+              {{ dict.label }}
             </div>
           </el-descriptions-item>
           <el-descriptions-item label="客户">
             <dev v-show="!showCustomer">
-              {{form.basic.customerName.substring(0,2) + '******' + form.basic.customerName.substring(form.basic.customerName.length - 2,form.basic.customerName.length)}}
+              {{ form.basic.customerName.substring(0, 2) + '******' +
+                form.basic.customerName.substring(form.basic.customerName.length - 2, form.basic.customerName.length) }}
             </dev>
             <dev v-show="showCustomer">
-              {{form.basic.customerName}}
+              {{ form.basic.customerName }}
             </dev>
-            <el-button size="mini" type="text" icon="el-icon-view" @click="customerButton"/>
+            <el-button size="mini" type="text" icon="el-icon-view" @click="customerButton" />
           </el-descriptions-item>
           <el-descriptions-item :label="totalRevenue">
             <div v-for="dict in dict.type.mk_bo_total_revenue" v-if="form.basic.totalHosRevenue == dict.value">
-              {{dict.label}}
+              {{ dict.label }}
             </div>
           </el-descriptions-item>
           <el-descriptions-item :label="estimate">
-            {{form.basic.hosDiscreetValue}}
+            {{ form.basic.hosDiscreetValue }}
           </el-descriptions-item>
           <el-descriptions-item label="赢单率">
-            {{form.basic.winningRate}}
+            {{ form.basic.winningRate }}
           </el-descriptions-item>
           <el-descriptions-item label="商机内容">
-            {{form.basic.boContent}}
+            {{ form.basic.boContent }}
           </el-descriptions-item>
         </el-descriptions>
         <!-- 其它信息 -->
@@ -128,58 +98,43 @@
         </el-divider>
         <el-descriptions>
           <el-descriptions-item label="销售组织">
-            {{form.basic.marketingOrganizingName}}
+            {{ form.basic.marketingOrganizingName }}
           </el-descriptions-item>
           <el-descriptions-item label="销售区域">
-            {{form.basic.marketingAreaName}}
+            {{ form.basic.marketingAreaName }}
           </el-descriptions-item>
           <el-descriptions-item label="部门">
-            {{form.basic.deptName}}
+            {{ form.basic.deptName }}
           </el-descriptions-item>
           <el-descriptions-item label="商机负责人">
-            {{form.basic.principalName}}
+            {{ form.basic.principalName }}
           </el-descriptions-item>
           <el-descriptions-item label="创建人">
-            {{form.basic.creatorName}}
+            {{ form.basic.creatorName }}
           </el-descriptions-item>
           <el-descriptions-item label="创建时间">
-            {{form.basic.createTime}}
+            {{ form.basic.createTime }}
           </el-descriptions-item>
         </el-descriptions>
       </el-tab-pane>
       <!-- 商机任务页签 -->
       <el-tab-pane label="商机任务" name="second">
-        <TaskList
-          :source="'BoDetails'"
-          :bo="this.form.basic"
-          :boAuthority="this.boAuthority"
-          v-if="masterTabs == 'second'"
-        />
+        <TaskList :source="'BoDetails'" :bo="this.form.basic" :boAuthority="this.boAuthority"
+          v-if="masterTabs == 'second'" />
       </el-tab-pane>
       <!-- 联系人页签 -->
       <el-tab-pane label="商机联系人" name="third">
-        <ContactList
-          :source="'BoDetails'"
-          :bo="this.form.basic"
-          :boAuthority="this.boAuthority"
-          v-if="masterTabs == 'third'"
-        />
+        <ContactList :source="'BoDetails'" :bo="this.form.basic" :boAuthority="this.boAuthority"
+          v-if="masterTabs == 'third'" />
       </el-tab-pane>
       <!-- 附件页签 -->
       <el-tab-pane label="附件信息" name="fourth">
-        <AccessoryList
-          :source="'BoDetails'"
-          :bo="this.form.basic"
-          :boAuthority="this.boAuthority"
-          v-if="masterTabs == 'fourth'"
-        />
+        <AccessoryList :source="'BoDetails'" :bo="this.form.basic" :boAuthority="this.boAuthority"
+          v-if="masterTabs == 'fourth'" />
       </el-tab-pane>
       <!-- 模板文件页签 -->
       <el-tab-pane label="模板文件下载" name="five">
-        <FileTemplate
-          :botype="form.basic.boType"
-          v-if="masterTabs == 'five'"
-        />
+        <FileTemplate :botype="form.basic.boType" v-if="masterTabs == 'five'" />
       </el-tab-pane>
     </el-tabs>
 
@@ -188,64 +143,46 @@
       <el-form ref="wsform" :model="winningStateData" :rules="winningStateDataRules" label-width="140px">
         <!-- 赢单 -->
         <el-form-item label="赢单日期" prop="winningStateDate" v-if="this.winningStateData.winningState == '3'">
-          <el-date-picker clearable
-            v-model="winningStateData.winningStateDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择赢单日期"
-            style="width:220px"
-            >
+          <el-date-picker clearable v-model="winningStateData.winningStateDate" type="date" value-format="yyyy-MM-dd"
+            placeholder="请选择赢单日期" style="width:220px">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="赢单金额(万元)" prop="winningStateMoney" v-if="this.winningStateData.winningState == '3'">
-          <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="赢单金额"/>
+          <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="赢单金额" />
         </el-form-item>
-        <el-form-item label="赢单原因" prop="winningStateCause"  v-if="this.winningStateData.winningState == '3'">
+        <el-form-item label="赢单原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '3'">
           <el-select v-model="winningStateData.winningStateCause" placeholder="请输入">
-            <el-option
-              v-for="dict in dict.type.mk_bo_wincause"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.label"
-            ></el-option>
+            <el-option v-for="dict in dict.type.mk_bo_wincause" :key="dict.value" :label="dict.label"
+              :value="dict.label"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="赢单备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '3'">
-          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入赢单备注"/>
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入赢单备注" />
         </el-form-item>
         <!-- 丢单 -->
         <el-form-item label="丢单日期" prop="winningStateDate" v-if="this.winningStateData.winningState == '2'">
-          <el-date-picker clearable
-            v-model="winningStateData.winningStateDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="丢单日期"
-            style="width:220px"
-            >
+          <el-date-picker clearable v-model="winningStateData.winningStateDate" type="date" value-format="yyyy-MM-dd"
+            placeholder="丢单日期" style="width:220px">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="丢单金额(万元)" prop="winningStateMoney" v-if="this.winningStateData.winningState == '2'">
-          <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="丢单金额"/>
+          <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="丢单金额" />
         </el-form-item>
-        <el-form-item label="丢单原因" prop="winningStateCause"  v-if="this.winningStateData.winningState == '2'">
+        <el-form-item label="丢单原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '2'">
           <el-select v-model="winningStateData.winningStateCause" placeholder="请输入">
-            <el-option
-              v-for="dict in dict.type.mk_bo_losecause"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.label"
-            ></el-option>
+            <el-option v-for="dict in dict.type.mk_bo_losecause" :key="dict.value" :label="dict.label"
+              :value="dict.label"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="丢单备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '2'">
-          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入丢单备注"/>
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入丢单备注" />
         </el-form-item>
         <!-- 关闭 -->
         <el-form-item label="关闭原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '1'">
-          <el-input v-model="winningStateData.winningStateCause" style="width:220px" placeholder="关闭原因"/>
+          <el-input v-model="winningStateData.winningStateCause" style="width:220px" placeholder="关闭原因" />
         </el-form-item>
         <el-form-item label="关闭备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '1'">
-          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="关闭备注"/>
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="关闭备注" />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -255,38 +192,21 @@
     </el-dialog>
 
     <!-- 分配商机负责人对话框 -->
-    <el-dialog
-      title="分配商机负责人"
-      :visible.sync="allocationPopover"
-      width="500px"
-      append-to-body
-    >
+    <el-dialog title="分配商机负责人" :visible.sync="allocationPopover" width="500px" append-to-body>
       <el-form ref="afform" :model="allocationForm" :rules="allocationFormRules" label-width="140px">
         <el-form-item label="新负责人" prop="allocationStaff">
-          <dr-input-dialog
-            v-model="allocationForm.allocationStaffName"
-            title="员工"
-            type="CONTACTS_PARAM"
-            :dataMapping="{
-              allocationStaff: 'id',
-              allocationStaffName: 'name',
-            }"
-            :source.sync="allocationForm"
-          ></dr-input-dialog>
+          <dr-popover-select v-model="allocationForm.allocationStaffName" title="员工" type="CONTACTS_PARAM" :dataMapping="{
+            allocationStaff: 'id',
+            allocationStaffName: 'name',
+          }" :source.sync="allocationForm"></dr-popover-select>
         </el-form-item>
         <el-form-item label="是否将您作为参与人" prop="isParticipant">
-          <el-radio v-model="allocationForm.isParticipant" :label='true'
-            >是</el-radio
-          >
-          <el-radio v-model="allocationForm.isParticipant" :label='false'
-            >否</el-radio
-          >
+          <el-radio v-model="allocationForm.isParticipant" :label='true'>是</el-radio>
+          <el-radio v-model="allocationForm.isParticipant" :label='false'>否</el-radio>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitAllocationForm"
-          >确 定</el-button
-        >
+        <el-button type="primary" @click="submitAllocationForm">确 定</el-button>
         <el-button @click="cancelAllocation">取 消</el-button>
       </div>
     </el-dialog>
@@ -306,14 +226,13 @@ import ContactList from "../contact/contactList.vue";
 import AccessoryList from "../basic/accessoryList.vue";
 import FileTemplate from "../filetemplate/botabs.vue";
 import Process from '../basic/process.vue';
-import DrInputDialog from "@/components/input-dialog/index.vue";
 
 
 export default {
   //名称
   name: "BoDetails",
   //注册引入的组件
-  components: { TaskList, ContactList,AccessoryList,FileTemplate, Process,DrInputDialog,},
+  components: { TaskList, ContactList, AccessoryList, FileTemplate, Process, DrInputDialog, },
   //平台枚举
   dicts: [
     "mk_bo_type",
@@ -336,7 +255,7 @@ export default {
       //赢单状态
       winningState: null,
       //赢单状态数据
-      winningStateData:{},
+      winningStateData: {},
       //赢单状态表单校验
       // 赢单表单校验
       winningStateDataRules: {
@@ -358,15 +277,15 @@ export default {
         accessory: [],
       },
       //权限数据
-      boAuthority:{},
+      boAuthority: {},
       //流程节点数据
-      boStage:[],
+      boStage: [],
       //关单按钮是否显示
-      showClose:false,
+      showClose: false,
       //赢单按钮是否显示
-      showWin:false,
+      showWin: false,
       //丢单按钮是否显示
-      showLose:false,
+      showLose: false,
       //重新加载子组件参数
       timer: "",
       //是否显示客户
@@ -387,16 +306,16 @@ export default {
       //分配弹窗
       allocationPopover: false,
       //营收总额
-      totalRevenue:"***营收总额",
+      totalRevenue: "***营收总额",
       //预估额
-      estimate:"***预估额(万元)",
+      estimate: "***预估额(万元)",
     };
   },
   watch: {
     'form.basic.boType': {
       handler(newVal, oldVal) {
-        console.log('newVal',newVal);
-        switch(newVal) {
+        console.log('newVal', newVal);
+        switch (newVal) {
           case '0':
             this.totalRevenue = "医院营收总额";
             this.estimate = "医院耗材预估值(万元)"
@@ -422,7 +341,7 @@ export default {
             this.estimate = "工程预估额(万元)"
             break;
           default:
-              break;
+            break;
         }
       },
       immediate: true,
@@ -455,7 +374,7 @@ export default {
       }
     },
     //赢单状态按钮
-    handleWinningState(winningState,title){
+    handleWinningState(winningState, title) {
       this.resetWinningStateData();
       this.winningStateOpen = true;
       this.winningStateTitle = title;
@@ -463,7 +382,7 @@ export default {
       this.winningStateData.boId = this.form.basic.id;
       this.winningStateData.winningStateDate = new Date();
     },
-    resetWinningStateData(){
+    resetWinningStateData() {
       this.winningStateData = {
         boId: null,
         winningState: null,
@@ -497,11 +416,11 @@ export default {
       // this.allocationForm.boId = parseInt(this.form.basic.id);
       // this.allocationForm.allocationStaff = parseInt(this.allocationForm.allocationStaff);
       this.allocationForm.boId = this.form.basic.id;
-      console.log('this.allocationForm',this.allocationForm);
+      console.log('this.allocationForm', this.allocationForm);
       this.$refs["afform"].validate(valid => {
         if (valid) {
           allocationParticipant(this.allocationForm).then(response => {
-            console.log('response',response);
+            console.log('response', response);
             this.$modal.msgSuccess("分配成功");
             this.allocationPopover = false;
             this.reload();
@@ -514,7 +433,7 @@ export default {
       this.allocationPopover = false;
     },
     //重新加载数据
-    reload(){
+    reload() {
       //加载基础数据
       getBasic(this.$route.params.id).then((response) => {
         this.form.basic = response.data;
@@ -530,27 +449,27 @@ export default {
           var curNode = 0;
           var signContract = 999;
           for (var i = 0; i < this.boStage.length; i++) {
-            if(this.boStage[i].code == this.form.basic.boStage){
+            if (this.boStage[i].code == this.form.basic.boStage) {
               curNode = i;
             }
-            if(this.boStage[i].name.toString().includes('审核')){
+            if (this.boStage[i].name.toString().includes('审核')) {
               auditNode = i;
             }
-            if(this.boStage[i].name.toString().includes('合同')){
+            if (this.boStage[i].name.toString().includes('合同')) {
               signContract = i;
             }
           }
-          this.showClose=false;
-          this.showLose=false;
-          this.showWin=false;
-          if(curNode < auditNode){
-            this.showClose=true;
+          this.showClose = false;
+          this.showLose = false;
+          this.showWin = false;
+          if (curNode < auditNode) {
+            this.showClose = true;
           }
-          if(curNode > auditNode){
-            this.showLose=true;
+          if (curNode > auditNode) {
+            this.showLose = true;
           }
-          if(curNode >= signContract){
-            this.showWin=true;
+          if (curNode >= signContract) {
+            this.showWin = true;
           }
           //确定数据加载完成,子组件可以开始展示
           this.timer = new Date().getTime();
@@ -558,7 +477,7 @@ export default {
       });
     },
     //是否显示客户
-    customerButton(){
+    customerButton() {
       this.showCustomer = !this.showCustomer;
     },
   },
@@ -574,33 +493,33 @@ export default {
       //加载流程节点数据
       getBoNodeListByType(this.form.basic.boType).then(response => {
         this.boStage = response.rows;
-        console.log('this.boStage',this.boStage);
+        console.log('this.boStage', this.boStage);
         //赢丢单按钮显示逻辑
         var auditNode = 999;
         var curNode = 0;
         var signContract = 999;
         for (var i = 0; i < this.boStage.length; i++) {
-          if(this.boStage[i].code == this.form.basic.boStage){
+          if (this.boStage[i].code == this.form.basic.boStage) {
             curNode = i;
           }
-          if(this.boStage[i].name.toString().includes('审核')){
+          if (this.boStage[i].name.toString().includes('审核')) {
             auditNode = i;
           }
-          if(this.boStage[i].name.toString().includes('合同')){
+          if (this.boStage[i].name.toString().includes('合同')) {
             signContract = i;
           }
         }
-        this.showClose=false;
-        this.showLose=false;
-        this.showWin=false;
-        if(curNode < auditNode){
-          this.showClose=true;
+        this.showClose = false;
+        this.showLose = false;
+        this.showWin = false;
+        if (curNode < auditNode) {
+          this.showClose = true;
         }
-        if(curNode > auditNode){
-          this.showLose=true;
+        if (curNode > auditNode) {
+          this.showLose = true;
         }
-        if(curNode >= signContract){
-          this.showWin=true;
+        if (curNode >= signContract) {
+          this.showWin = true;
         }
         //确定数据加载完成,子组件可以开始展示
         this.timer = new Date().getTime();
@@ -612,35 +531,35 @@ export default {
 
 
 <style scoped>
-.md-content >>> .el-form-item {
+.md-content>>>.el-form-item {
   margin-bottom: 10px;
 }
 
-.md-content >>> .el-tabs--border-card > .el-tabs__content {
+.md-content>>>.el-tabs--border-card>.el-tabs__content {
   padding-bottom: 8px;
 }
 
-.md-content .md-auditInfo >>> .el-form-item {
+.md-content .md-auditInfo>>>.el-form-item {
   margin-bottom: 0px;
 }
 
-.md-main >>> .el-form-item,
-.md-vice >>> .el-form-item {
+.md-main>>>.el-form-item,
+.md-vice>>>.el-form-item {
   width: 100%;
   box-sizing: border-box;
 }
 
-.md-main >>> .el-form-item__label,
-.md-vice >>> .el-form-item__label {
+.md-main>>>.el-form-item__label,
+.md-vice>>>.el-form-item__label {
   width: 40%;
 }
 
-.md-main >>> .el-form-item__content,
-.md-md-vice >>> .el-form-item__content {
+.md-main>>>.el-form-item__content,
+.md-md-vice>>>.el-form-item__content {
   width: 60%;
 }
 
-.md-content >>> .el-form-item__label {
+.md-content>>>.el-form-item__label {
   font-weight: normal;
   /* text-align: left;
   width: 28%; */
@@ -656,11 +575,11 @@ export default {
   /* Firefox */
 }
 
-.md-main >>> .material-table {
+.md-main>>>.material-table {
   height: 100%;
 }
 
-.md-vice >>> .material-table {
+.md-vice>>>.material-table {
   height: 140px;
   overflow-y: auto;
   overflow-x: auto;

+ 68 - 200
src/views/purchase/apply/add/index.vue

@@ -13,7 +13,7 @@ export default {
   name: "AddDrawer",
   dicts: initDicts(NewColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+   
   },
   data() {
     return {
@@ -118,161 +118,70 @@ export default {
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>新增</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >保 存</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">保 存</el-button>
             <el-button :size="size" type="info" @click="handleSubmit">
               新 增
             </el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :title="column.title"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :source.sync="params"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
+                :data-mapping="column.config.dataMapping" :source.sync="params">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -285,83 +194,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -370,9 +240,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 69 - 201
src/views/purchase/apply/edit/index.vue

@@ -17,7 +17,7 @@ export default {
   name: "EditDrawer",
   dicts: initDicts(NewColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+   
   },
   data() {
     return {
@@ -136,163 +136,72 @@ export default {
         // this.setVisible(false);
       }
     },
-    beforeOpen(){},
+    beforeOpen() { },
   },
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>编辑</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >更 新</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">更 新</el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :source.sync="params"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :title="column.title"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :clearable="column.clearable"
-                :placeholder="column.placeholder"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]" :source.sync="params"
+                :type="column.config.componentName" :data-mapping="column.config.dataMapping" :title="column.title"
+                :disabled="column.disabled" :readonly="column.readonly" :clearable="column.clearable"
+                :placeholder="column.placeholder">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -305,83 +214,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -390,9 +260,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 68 - 200
src/views/purchase/catalogue/add/index.vue

@@ -13,7 +13,7 @@ export default {
   name: "AddDrawer",
   dicts: initDicts(NewColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+   
   },
   data() {
     return {
@@ -118,161 +118,70 @@ export default {
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>新增</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >保 存</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">保 存</el-button>
             <el-button :size="size" type="info" @click="handleSubmit">
               新 增
             </el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :title="column.title"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :source.sync="params"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
+                :data-mapping="column.config.dataMapping" :source.sync="params">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -285,83 +194,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -370,9 +240,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 68 - 200
src/views/purchase/catalogue/edit/index.vue

@@ -17,7 +17,7 @@ export default {
   name: "EditDrawer",
   dicts: initDicts(NewColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+   
   },
   data() {
     return {
@@ -140,158 +140,67 @@ export default {
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>编辑</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >更 新</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">更 新</el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :source.sync="params"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :title="column.title"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :clearable="column.clearable"
-                :placeholder="column.placeholder"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]" :source.sync="params"
+                :type="column.config.componentName" :data-mapping="column.config.dataMapping" :title="column.title"
+                :disabled="column.disabled" :readonly="column.readonly" :clearable="column.clearable"
+                :placeholder="column.placeholder">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -304,83 +213,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -389,9 +259,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 76 - 202
src/views/purchase/contract/add/index.vue

@@ -12,9 +12,8 @@ const NewTabColumns = TabColumns.map((element) => ({
 export default {
   name: "AddDrawer",
   dicts: initDicts(NewColumns),
-  components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
-  },
+
+  components: {},
   data() {
     return {
       size: "mini",
@@ -114,165 +113,81 @@ export default {
         // this.setVisible(false);
       }
     },
+
+
+
+
+    handleHide(PROP) {
+      console.log(1233123123, PROP);
+    },
   },
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>新增</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >保 存</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">保 存</el-button>
             <el-button :size="size" type="info" @click="handleSubmit">
               新 增
             </el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :title="column.title"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :source.sync="params"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
+                :data-mapping="column.config.dataMapping" :source.sync="params">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -285,83 +200,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size" @hide="handleHide">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -370,9 +246,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 68 - 200
src/views/purchase/contract/edit/index.vue

@@ -17,7 +17,7 @@ export default {
   name: "EditDrawer",
   dicts: initDicts(NewColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+    
   },
   data() {
     return {
@@ -140,158 +140,67 @@ export default {
   created() {
     console.log("ADD CREATED");
   },
-  mounted() {},
-  destroyed() {},
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-drawer
-    direction="btt"
-    size="100%"
-    :with-header="false"
-    :visible.sync="visible"
-    @open="beforeOpen"
-    @close="$emit('close')"
-  >
-    <el-form
-      v-loading="loading"
-      :size="size"
-      label-position="right"
-      label-width="135px"
-      :model="params"
-      :rules="rules"
-    >
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-        }"
-        style="margin: 10px"
-      >
-        <div
-          slot="header"
-          style="
+  <el-drawer direction="btt" size="100%" :with-header="false" :visible.sync="visible" @open="beforeOpen"
+    @close="$emit('close')">
+    <el-form v-loading="loading" :size="size" label-position="right" label-width="135px" :model="params" :rules="rules">
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
             display: flex;
             justify-content: space-between;
             align-items: center;
-          "
-        >
+          ">
           <h3>编辑</h3>
           <div style="text-align: right">
             <el-button :size="size" @click="handleCancel">取 消</el-button>
-            <el-button :size="size" type="danger" @click="handleSava"
-              >更 新</el-button
-            >
+            <el-button :size="size" type="danger" @click="handleSava">更 新</el-button>
           </div>
         </div>
         <el-row>
-          <el-col
-            v-for="(column, index) in columns"
-            :key="index"
-            :span="column.span || 6"
-          >
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
             <el-form-item :prop="column.key" :label="column.title">
-              <el-input
-                v-if="column.type === 'Input'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <dr-input-dialog
-                v-if="column.type === 'InputDialog'"
-                v-model="params[column.key]"
-                :source.sync="params"
-                :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping"
-                :title="column.title"
-                :disabled="column.disabled"
-                :readonly="column.readonly"
-                :clearable="column.clearable"
-                :placeholder="column.placeholder"
-              >
-              </dr-input-dialog>
-              <el-input
-                v-if="column.type === 'Textarea'"
-                v-model="params[column.key]"
-                type="textarea"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input>
-              <el-input-number
-                v-if="column.type === 'InputNumber'"
-                v-model="params[column.key]"
-                :controls-position="column.config.controlsPosition"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              ></el-input-number>
-              <el-select
-                v-if="column.type === 'Select'"
-                v-model="params[column.key]"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in dict.type[column.config.optionsName]"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+              <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]" :source.sync="params"
+                :type="column.config.componentName" :data-mapping="column.config.dataMapping" :title="column.title"
+                :disabled="column.disabled" :readonly="column.readonly" :clearable="column.clearable"
+                :placeholder="column.placeholder">
+              </dr-popover-select>
+              <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%"></el-input>
+              <el-input-number v-if="column.type === 'InputNumber'" v-model="params[column.key]"
+                :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input-number>
+              <el-select v-if="column.type === 'Select'" v-model="params[column.key]" :placeholder="column.placeholder"
+                :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
+                <el-option v-for="item in dict.type[column.config.optionsName]" :key="item.value" :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
-              <el-select
-                v-if="column.type === 'TagSelect'"
-                v-model="params[column.key]"
-                multiple
-                clearable
-                collapse-tags
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                style="width: 100%"
-              >
+              <el-select v-if="column.type === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                style="width: 100%">
                 <template #prefix>
-                  <el-icon
-                    class="el-icon-view"
-                    style="cursor: pointer"
-                    @click.stop="$message.info(234)"
-                  ></el-icon>
+                  <el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
                 </template>
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
-              <el-date-picker
-                v-if="column.type === 'DatePicker'"
-                v-model="params[column.key]"
-                :type="column.config.type"
-                :placeholder="column.placeholder"
-                :clearable="column.clearable"
-                :disabled="column.disabled"
-                :picker-options="column.pickerOptions"
-                style="width: 100%"
-              >
+              <el-date-picker v-if="column.type === 'DatePicker'" v-model="params[column.key]" :type="column.config.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://sy.derom.com/document-center/fastdfs/upload"
-                multiple
-              >
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -304,83 +213,44 @@ export default {
           </el-col>
         </el-row>
       </el-card>
-      <el-card
-        :body-style="{
-          padding: '20px',
-          display: 'flex',
-          'flex-wrap': 'wrap',
-          position: 'relative',
-        }"
-        style="margin: 10px"
-      >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
         <el-tabs v-model="tabName" style="width: 100%">
-          <el-tab-pane
-            v-for="(column, index) in tabColumns"
-            :key="index"
-            :label="column.title"
-            :name="column.key"
-          >
+          <el-tab-pane v-for="(column, index) in tabColumns" :key="index" :label="column.title" :name="column.key">
             <el-table :data="params[column.key]" style="width: 100%">
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
                 </template>
               </el-table-column>
-              <el-table-column
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width">
                 <template slot-scope="scope">
                   <span v-if="!cColumn.type">
-                    {{ scope.row[cColumn.key] }}</span
-                  >
-                  <el-input
-                    v-if="cColumn.type === 'Input'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input>
-                  <dr-input-dialog
-                    v-if="cColumn.type === 'InputDialog'"
-                    v-model="scope.row[cColumn.key]"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :readonly="cColumn.readonly"
-                    :title="cColumn.title"
-                    :type="cColumn.config.componentName"
-                    :data-mapping="cColumn.config.dataMapping"
-                    :source.sync="scope.row"
-                    :size="size"
-                  >
-                  </dr-input-dialog>
-                  <el-input-number
-                    v-if="cColumn.type === 'InputNumber'"
-                    v-model="scope.row[cColumn.key]"
-                    :controls-position="cColumn.config.controlsPosition"
-                    :placeholder="cColumn.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    :size="size"
-                    style="width: 100%"
-                  ></el-input-number>
+                    {{ scope.row[cColumn.key] }}</span>
+                  <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :size="size" style="width: 100%"></el-input>
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
+                  </dr-popover-select>
+                  <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
+                    :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size"
+                    style="width: 100%"></el-input-number>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="120">
                 <template slot-scope="scope">
-                  <el-button
-                    @click.native.prevent="
-                      delTableRow(params[tabName], scope.$index)
-                    "
-                    type="text"
-                    size="small"
-                  >
+                  <el-button @click.native.prevent="
+                    delTableRow(params[tabName], scope.$index)
+                    " type="text" size="small">
                     删行
                   </el-button>
                 </template>
@@ -389,9 +259,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button :size="size" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

+ 21 - 21
src/views/purchase/purchase-order/add/column.js

@@ -2,7 +2,7 @@ export const Columns = [
   {
     key: "puOrgName",
     title: "采购组织",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "ORG_PARAM",
       dataMapping: {
@@ -37,7 +37,7 @@ export const Columns = [
   {
     key: "supplierName",
     title: "供应商",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "SUPPLIER_PARAM",
       dataMapping: {
@@ -50,7 +50,7 @@ export const Columns = [
   {
     key: "paymentAgreementName",
     title: "付款协议",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "PAYAGREEMENT_PARAM",
       dataMapping: {
@@ -62,7 +62,7 @@ export const Columns = [
   {
     key: "finalTypeName",
     title: "结算方式",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "BALATYPE_PARAM",
       dataMapping: {
@@ -74,7 +74,7 @@ export const Columns = [
   {
     key: "currencyName",
     title: "币种",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "CURRENCY_PARAM",
       dataMapping: {
@@ -86,7 +86,7 @@ export const Columns = [
   {
     key: "buyerName",
     title: "采购员",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "CONTACTS_PARAM",
       dataMapping: {
@@ -101,7 +101,7 @@ export const Columns = [
   {
     key: "puDeptName",
     title: "采购部门",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "DEPT_PARAM",
       dataMapping: {
@@ -114,7 +114,7 @@ export const Columns = [
   {
     key: "customerName",
     title: "收货客户",
-    type: "InputDialog",
+    type: "PopoverSelect",
     width: 200,
     require: true,
     config: {
@@ -157,7 +157,7 @@ export const Columns = [
   {
     key: "warehouseName",
     title: "WMS入库仓库", // 收货仓库
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "WAREHOUSE_PARAM",
@@ -170,7 +170,7 @@ export const Columns = [
   {
     key: "goodsAllocationName",
     title: "货位",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "ALLOCATION_PARAM",
@@ -194,7 +194,7 @@ export const Columns = [
   {
     key: "customerDeptName",
     title: "客户部门",
-    type: "InputDialog",
+    type: "PopoverSelect",
     width: 200,
     config: {
       componentName: "CUSTOMERDEPT_PARAM",
@@ -207,7 +207,7 @@ export const Columns = [
   {
     key: "supplierContactsName",
     title: "供应商业务联系人",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "SUPPLIERCONTACTS_PARAM",
@@ -231,12 +231,12 @@ export const Columns = [
   //   key: "supplierPersonal",
   //   title: "供应商业务员",
   //   type: "Input",
-  //   // type: "InputDialog",
+  //   // type: "PopoverSelect",
   // },
   {
     key: "supplierPersonalName",
     title: "供应商业务员名称",
-    type: "InputDialog",
+    type: "PopoverSelect",
     config: {
       componentName: "SUPPLIERCONTACTS_PARAM",
       dataMapping: {
@@ -250,7 +250,7 @@ export const Columns = [
   {
     key: "retReasonName",
     title: "退换原因",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "RETREASON_PARAM",
@@ -263,7 +263,7 @@ export const Columns = [
   {
     key: "processTypeName",
     title: "处理方式",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "PROCESSTYPE_PARAM",
@@ -277,7 +277,7 @@ export const Columns = [
   {
     key: "projectNowName",
     title: "在建工程项目",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "PROJECT_PARAM",
@@ -290,7 +290,7 @@ export const Columns = [
   {
     key: "operatingItemsName",
     title: "经营性项目",
-    type: "InputDialog",
+    type: "PopoverSelect",
     require: true,
     config: {
       componentName: "OPERATING_PARAM",
@@ -337,7 +337,7 @@ export const TabColumns = [
       {
         key: "materialCode",
         title: "物料编码",
-        type: "InputDialog",
+        type: "PopoverSelect",
         width: 180,
         config: {
           componentName: "MATERIAL_PARAM",
@@ -373,7 +373,7 @@ export const TabColumns = [
       {
         key: "warehouseName",
         title: "收货仓库", //WMS入库仓库
-        type: "InputDialog",
+        type: "PopoverSelect",
         config: {
           componentName: "WAREHOUSE_PARAM",
           dataMapping: {
@@ -452,7 +452,7 @@ export const TabColumns = [
       {
         key: "materialName",
         title: "物料",
-        type: "InputDialog",
+        type: "PopoverSelect",
         config: {
           componentName: "MATERIAL_PARAM",
           dataMapping: {

+ 5 - 5
src/views/purchase/purchase-order/add/index.vue

@@ -19,7 +19,7 @@ export default {
   name: "AddPurchaseOrderDrawer",
   dicts: initDicts(SelectColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+  
   },
 
   data() {
@@ -216,11 +216,11 @@ export default {
             <el-form-item :prop="column.key" :label="column.title">
               <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
                 :clearable="column.clearable" :disabled="column.disabled" style="width: 100%"></el-input>
-              <dr-input-dialog v-if="column.type === 'InputDialog'" v-model="params[column.key]"
+              <dr-popover-select v-if="column.type === 'PopoverSelect'" v-model="params[column.key]"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
                 :data-mapping="column.config.dataMapping" :query-params="column.config.queryParams" :source.sync="params">
-              </dr-input-dialog>
+              </dr-popover-select>
               <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 style="width: 100%"></el-input>
@@ -283,11 +283,11 @@ export default {
                   <el-input v-if="cColumn.type === 'Input'" v-model="scope.row[cColumn.key]"
                     :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
                     size="mini" style="width: 100%"></el-input>
-                  <dr-input-dialog v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                  <dr-popover-select v-if="cColumn.type === 'PopoverSelect'" v-model="scope.row[cColumn.key]"
                     :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
                     :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
                     :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" size="mini">
-                  </dr-input-dialog>
+                  </dr-popover-select>
                   <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"
                     :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
                     :clearable="cColumn.clearable" :disabled="cColumn.disabled" size="mini" style="width: 100%">

+ 5 - 5
src/views/purchase/purchase-order/edit/index.vue

@@ -18,7 +18,7 @@ export default {
   name: "EditPurchaseOrderDrawer",
   dicts: initDicts(SelectColumns),
   components: {
-    DrInputDialog: () => import("@/components/input-dialog/index.vue"),
+
   },
   data() {
     return {
@@ -206,11 +206,11 @@ export default {
               <el-input v-if="column.type === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
                 :clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
               </el-input>
-              <dr-input-dialog v-if="column.type === 'InputDialog'" v-model="params[column.key]"
+              <dr-popover-select v-if="column.type === 'InputDialog'" v-model="params[column.key]"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 :readonly="column.readonly" :query-params="column.config.queryParams" :title="column.title"
                 :type="column.config.componentName" :data-mapping="column.config.dataMapping" :source.sync="params">
-              </dr-input-dialog>
+              </dr-popover-select>
               <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 style="width: 100%">
@@ -278,11 +278,11 @@ export default {
                     :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
                     :size="size" style="width: 100%">
                   </el-input>
-                  <dr-input-dialog v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
+                  <dr-popover-select v-if="cColumn.type === 'InputDialog'" v-model="scope.row[cColumn.key]"
                     :placeholder="cColumn.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
                     :readonly="cColumn.readonly" :title="cColumn.title" :type="cColumn.config.componentName"
                     :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" :size="size">
-                  </dr-input-dialog>
+                  </dr-popover-select>
                   <el-select v-if="cColumn.type === 'Select'" v-model="params[cColumn.key]"
                     :placeholder="column.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
                     style="width: 100%">

+ 2 - 2
vue.config.js

@@ -37,12 +37,12 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://172.16.100.107:8080/drp-admin`, //测试
-        target: `http://test-sy.derom.com/drp-admin`, //测试
+        // target: `http://test-sy.derom.com/drp-admin`, //测试
         // target: `http://release-sy.derom.com/drp-admin`, //预发
         // target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地
         // target: `http://172.16.62.241:8000/drp-admin`, //笑寒本地
-        // target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地
+        target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地
         // target: `http://172.16.13.47:8000/drp-admin`, //石杨本地
         // target: `http://172.16.13.113:8000/drp-admin`, //DWT本地
         // target: `http://172.16.13.77:8000/drp-admin`, //TQ本地