Bladeren bron

Merge branch 'purchaseDev' of http://172.16.100.139/new-business/drp-web into purchaseDev

002201 2 jaren geleden
bovenliggende
commit
4ec37ead4a

+ 1 - 1
src/assets/styles/variables.scss

@@ -36,7 +36,7 @@ $base-sub-menu-background:#000c17;
 $base-sub-menu-hover:#001528;
 */
 
-$base-sidebar-width: 200px;
+$base-sidebar-width: 270px;
 
 // the :export directive is the magic sauce for webpack
 // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass

+ 1 - 0
src/layout/components/Sidebar/SidebarItem.vue

@@ -41,6 +41,7 @@
         :key="child.path"
         :is-nest="true"
         :item="child"
+        :title="child.meta.title"
         :base-path="resolvePath(child.path)"
         class="nest-menu"
       />

+ 1 - 2
src/views/purchase/MaterialClassDivision/index.vue

@@ -199,12 +199,11 @@
               导出<i class="el-icon-arrow-down el-icon--right"></i>
             </el-button>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="Excel导出">Excel导出</el-dropdown-item>
+              <el-dropdown-item command="Excel导出">Excel导出</el-dropdown-item>
               <el-dropdown-item command="导出明细">导出明细</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
 
-          <el-button type="primary" size="small">同步分配</el-button>
           <el-button type="primary" size="small">删除</el-button>
         </div>
         <el-table 

+ 17 - 7
src/views/purchase/purchase-order/add/column.js

@@ -31,8 +31,10 @@ export const Columns = [
   {
     key: "billDate",
     title: "订单日期",
-    type: "DatePicker",
-    config: { type: "date" },
+    inputType: "DatePicker",
+    type: "date",
+    valueFormat: "yyyy-MM-dd",
+    width: 200,
   },
   {
     key: "supplierName",
@@ -223,7 +225,13 @@ export const Columns = [
   // { key: "agent", title: "代理人", type: "Input", }, // 建议删除
   // { key: "agentName", title: "代理人名称", },
   { key: "isClose", title: "最终关闭", type: "Checkbox", },
-  { key: "closeTime", title: "最终关闭日期", type: "Input", },
+  {
+    key: "closeTime",
+    title: "最终关闭日期",
+    inputType: "DatePicker",
+    type: "date",
+    valueFormat: "yyyy-MM-dd",
+  },
   { key: "applyPaymentMoney", title: "累计付款申请金额", type: "Input", },
   { key: "paymentMoney", title: "累计付款金额", type: "Input", },
   { key: "invoiceMoney", title: "发票金额", type: "Input", },
@@ -311,14 +319,16 @@ export const Columns = [
   {
     key: "approverFinishTime",
     title: "审批时间",
-    type: "DatePicker",
-    config: { type: "date" },
+    inputType: "DatePicker",
+    type: "date",
+    valueFormat: "yyyy-MM-dd",
   },
   {
     key: "approveTime",
     title: "提交时间",
-    type: "DatePicker",
-    config: { type: "date" },
+    inputType: "DatePicker",
+    type: "date",
+    valueFormat: "yyyy-MM-dd",
   },
 
 ];

+ 155 - 257
src/views/purchase/purchase-order/add/index.vue

@@ -43,7 +43,6 @@ export default {
     "params.puOrderItemList": {
       handler(nVal, oVal) {
         this.handleSynchronousMaterial("puOrderItemList", "puOrderExecuteList");
-        console.log("params", this.params);
       },
       deep: true,
     },
@@ -53,13 +52,25 @@ export default {
       },
       deep: true,
     },
+    "params.puOrgName": {
+      handler(nVal, oVal) {
+        console.log(nVal, 'nVal', oVal, 'oVal');
+        for (const key in this.params) {
+          if (Array.isArray(this.params[key])) {
+            this.params[key] = [];
+          } else {
+            this.params[key] = '';
+          }
+        }
+      },
+      deep: true,
+    }
   },
   methods: {
     beforeOpen() {
-      const { deptName, deptId, name, nickName, orgName, orgId } =
-        this.$store.state.user;
-      this.params.puOrg = orgId;
-      this.params.puOrgName = orgName;
+      const { deptName, deptId, name, nickName, orgName, orgId } = this.$store.state.user;
+      // this.params.puOrg = orgId;
+      // this.params.puOrgName = orgName;
       this.params.buyer = name;
       this.params.buyerName = nickName;
       this.params.puDept = deptId;
@@ -104,7 +115,7 @@ export default {
     // 同步子表物料
     handleSynchronousMaterial(key1, key2) {
       // this.params[key1]-- -> this.params[key2]
-      this.params[key1].forEach((item, index) => {
+      this.params[key1] && this.params[key1].forEach((item, index) => {
         this.params[key2][index].material = item.material;
         this.params[key2][index].materialName = item.materialName;
         this.params[key2][index].materialCode = item.materialCode;
@@ -141,205 +152,145 @@ export default {
       // });
     },
     // 保存并新增
-    handleSubmit() {
-      this.$refs["orderAddForm"].validate(async (valid) => {
-        if (valid) {
-          try {
-            const createById = this.params.buyer;
-            const createByName = this.params.buyerName;
-            const updateById = this.$store.state.user.id;
-            const updateByName = this.$store.state.user.name;
-            const { code, msg } = await orderApi.create({
-              createById,
-              createByName,
-              updateById,
-              updateByName,
-              ...this.params,
-            });
-            if (code === 200) {
-              this.$notify.success({ title: msg });
-              this.setVisible(false);
-            } else {
-              this.$notify.warning({ title: msg });
-            }
-          } catch (err) {
-            //
-          } finally {
-            // this.setVisible(false);
-          }
+    async handleSubmit() {
+      // this.$refs["orderAddForm"].validate(async (valid) => {
+      //   if (valid) {
+      try {
+        const createById = this.params.buyer;
+        const createByName = this.params.buyerName;
+        const updateById = this.$store.state.user.id;
+        const updateByName = this.$store.state.user.name;
+        const { code, msg } = await orderApi.create({
+          createById,
+          createByName,
+          updateById,
+          updateByName,
+          ...this.params,
+        });
+        if (code === 200) {
+          this.$notify.success({ title: msg });
+          this.setVisible(false);
         } else {
-          console.log("error submit!!");
-          return false;
+          this.$notify.warning({ title: msg });
         }
-      });
+      } catch (err) {
+        this.$notify.error({ title: "error", message: err });
+      } finally {
+        // this.setVisible(false);
+      }
+      //   } else {
+      //     console.log("error submit!!");
+      //     return false;
+      //   }
+      // });
+    },
+    handleReferChange(val, source) {
+      console.log(val, 'val');
+      console.log(source, 'source');
+      let { puOrg, customer, assignSupplier } = this.params;
+      let parmas = {
+        // 组织
+        puOrg,
+        // 价格类型
+        // priceType:'',
+        // 客户
+        customer,
+        // 供应商
+        assignSupplier,
+        // 物料
+        material: source.material,
+      }
+      this.handleGetPrice(parmas);
     },
+    // 询价 getPrice
+    async handleGetPrice(data) {
+      try {
+        // let { puOrg, priceType, customer, assignSupplier, material, } = data;
+        await orderApi.getPrice(data).then(res => {
+          console.log(res, 'res------------------');
+        })
+        if (code == 200) {
+
+        }
+      } catch (error) {
+
+      } finally {
+
+      }
+    },
+
   },
   created() {
     console.log("ADD CREATED", this.params);
   },
-  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
-      size="mini"
-      label-position="right"
-      ref="orderAddForm"
-      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 size="mini" label-position="right" ref="orderAddForm" 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="mini" @click="handleCancel">取消</el-button>
-            <el-button size="mini" type="danger" @click="handleSava"
-              >保存</el-button
-            >
+            <el-button size="mini" type="danger" @click="handleSava">保存</el-button>
             <el-button size="mini" 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-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"
-              >
+
+              <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 === '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-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 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-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.inputType === 'DatePicker'" v-model="params[column.key]" :type="column.type"
+                :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
+                :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-checkbox
-                v-else-if="column.type === 'Checkbox'"
-                v-model="params[column.key]"
-                true-label="Y"
-                false-label="N"
-              ></el-checkbox>
-              <el-upload
-                v-if="column.type === 'Upload'"
-                :file-list="params[column.key]"
-                :disabled="column.disabled"
-                drag
-                action="https://jsonplaceholder.typicode.com/posts/"
-                multiple
-              >
+              <el-checkbox v-if="column.type === 'Checkbox'" v-model="params[column.key]" true-label="Y"
+                false-label="N"></el-checkbox>
+              <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
+                action="https://jsonplaceholder.typicode.com/posts/" multiple>
                 <i class="el-icon-upload"></i>
                 <div class="el-upload__text">
                   将文件拖到此处,或<em>点击上传</em>
@@ -353,101 +304,50 @@ export default {
         </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
-                v-for="(cColumn, cIndex) in column.tableColumns"
-                :key="cIndex"
-                :prop="cColumn.key"
-                :label="cColumn.title"
-                :width="cColumn.width || 80"
-              >
+              <el-table-column v-for="(cColumn, cIndex) in column.tableColumns" :key="cIndex" :prop="cColumn.key"
+                :label="cColumn.title" :width="cColumn.width || 80">
                 <template slot-scope="scope">
                   <el-tag v-if="cColumn.key === 'index'">
                     {{ scope.$index + 1 }}
                   </el-tag>
-                  <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-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"
-                  >
+                  <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-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"
+                    @change="handleReferChange">
                   </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%"
-                  >
+                  <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%">
                   </el-input-number>
-                  <el-select
-                    v-if="cColumn.type === 'Select'"
-                    v-model="params[cColumn.key]"
-                    :placeholder="column.placeholder"
-                    :clearable="cColumn.clearable"
-                    :disabled="cColumn.disabled"
-                    style="width: 100%"
-                  >
-                    <el-option
-                      v-for="item in dict.type[cColumn.config.optionsName]"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                  <el-select v-if="cColumn.type === 'Select'" v-model="params[cColumn.key]"
+                    :placeholder="column.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
+                    style="width: 100%">
+                    <el-option v-for="item in dict.type[cColumn.config.optionsName]" :key="item.value" :label="item.label"
+                      :value="item.value">
                     </el-option>
                   </el-select>
-                  <el-checkbox
-                    v-else-if="cColumn.type === 'Checkbox'"
-                    v-model="params[cColumn.key]"
-                    true-label="Y"
-                    false-label="N"
-                  ></el-checkbox>
+                  <el-checkbox v-if="cColumn.type === 'Checkbox'" v-model="params[cColumn.key]" true-label="Y"
+                    false-label="N"></el-checkbox>
                 </template>
               </el-table-column>
               <el-table-column fixed="right" label="操作" width="80">
                 <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>
@@ -456,9 +356,7 @@ export default {
           </el-tab-pane>
         </el-tabs>
         <el-row style="position: absolute; top: 20px; right: 20px">
-          <el-button size="mini" @click="addTableRow(params[tabName])"
-            >增行</el-button
-          >
+          <el-button size="mini" @click="addTableRow(params[tabName])">增行</el-button>
         </el-row>
       </el-card>
     </el-form>

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

@@ -51,14 +51,14 @@ export default {
     },
     'params.puOrderItemList': {
       handler(nVal, oVal) {
-        this.handleSynchronousMaterial('puOrderItemList', 'puOrderExecuteList');
+        this.params.source == 3 && this.handleSynchronousMaterial('puOrderItemList', 'puOrderExecuteList');
       },
       deep: true,
       immediate: true
     },
     'params.puOrderExecuteList': {
       handler(nVal, oVal) {
-        this.handleSynchronousMaterial('puOrderExecuteList', 'puOrderItemList');
+        this.params.source == 3 && this.handleSynchronousMaterial('puOrderExecuteList', 'puOrderItemList');
       },
       deep: true,
       immediate: true
@@ -72,7 +72,7 @@ export default {
     // 同步子表物料
     handleSynchronousMaterial(key1, key2) {
       // this.params[key1]-- -> this.params[key2]
-      this.params[key1].forEach((item, index) => {
+      this.params[key1] && this.params[key1].forEach((item, index) => {
         this.params[key2][index].material = item.material;
         this.params[key2][index].materialName = item.materialName;
         this.params[key2][index].materialCode = item.materialCode;
@@ -206,10 +206,10 @@ 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-popover-select 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" :query-params="column.config.queryParams" :title="column.title"
-                :type="column.config.componentName" :data-mapping="column.config.dataMapping" :source.sync="params">
+                :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
+                :data-mapping="column.config.dataMapping" :query-params="column.config.queryParams" :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"
@@ -234,11 +234,11 @@ export default {
                 <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"
+              <el-date-picker v-if="column.inputType === 'DatePicker'" v-model="params[column.key]" :type="column.type"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 :picker-options="column.pickerOptions" style="width: 100%">
               </el-date-picker>
-              <el-checkbox v-else-if="column.type === 'Checkbox'" v-model="params[column.key]" :disabled="column.disabled"
+              <el-checkbox v-if="column.type === 'Checkbox'" v-model="params[column.key]" :disabled="column.disabled"
                 true-label="Y" false-label="N">
               </el-checkbox>
               <el-upload v-if="column.type === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
@@ -278,10 +278,10 @@ export default {
                     :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]"
+                  <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="size">
+                    :data-mapping="cColumn.config.dataMapping" :source.sync="scope.row" size="mini">
                   </dr-popover-select>
                   <el-select v-if="cColumn.type === 'Select'" v-model="params[cColumn.key]"
                     :placeholder="column.placeholder" :clearable="cColumn.clearable" :disabled="cColumn.disabled"
@@ -290,7 +290,7 @@ export default {
                       :value="item.value">
                     </el-option>
                   </el-select>
-                  <el-checkbox v-else-if="cColumn.type === 'Checkbox'" v-model="params[cColumn.key]" true-label="Y"
+                  <el-checkbox v-if="cColumn.type === 'Checkbox'" v-model="params[cColumn.key]" true-label="Y"
                     false-label="N">
                   </el-checkbox>
                   <el-input-number v-if="cColumn.type === 'InputNumber'" v-model="scope.row[cColumn.key]"

+ 66 - 17
src/views/purchase/transferOrder/add.vue

@@ -43,7 +43,7 @@
          </el-col>
         <el-col :span="1.5">
             <el-form-item label="调拨方式">
-              <el-select v-model="basicForm.allotType" :disabled="sonDisable" size="small" style="width: 200px" clearable>
+              <el-select v-model="basicForm.allotType" disabled size="small" style="width: 200px" clearable>
                 <el-option v-for="dict in dict.type.sys_to_type" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
@@ -117,7 +117,7 @@
               <el-input
                 v-model="basicForm.onRouteAffilliation"
                 size="small"
-                :disabled="sonDisable"
+                disabled
                 clearable
                 style="width: 200px"
               />
@@ -158,24 +158,16 @@
          </el-col>
         <el-col :span="1.5">
             <el-form-item label="调入仓库">
-              <el-input
-                v-model="basicForm.storageWarehouse"
-                size="small"
-                :disabled="sonDisable"
-                clearable
-                style="width: 200px"
-              />
+              <el-select clearable size="small" v-model="basicForm.storageWarehouse" :disabled="sonDisable" @focus="chooseRefer('WAREHOUSE_PARAM', true, '调入仓库')" style="width: 200px">
+                <el-option v-for="item in ruHouseOptions" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
             </el-form-item>
          </el-col>
         <el-col :span="1.5">
             <el-form-item label="调出仓库">
-              <el-input
-                v-model="basicForm.deliveryWarehouse"
-                size="small"
-                :disabled="sonDisable"
-                clearable
-                style="width: 200px"
-              />
+              <el-select clearable size="small" v-model="basicForm.deliveryWarehouse" :disabled="sonDisable" @focus="chooseRefer('WAREHOUSE_PARAM', true, '调出仓库')" style="width: 200px">
+                <el-option v-for="item in chuHouseOptions" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
             </el-form-item>
          </el-col>
         <el-col :span="1.5">
@@ -224,7 +216,7 @@
       <el-tabs style="margin-top: 10px;" type="border-card">
         <el-tab-pane label="物料信息">
           <div class="btn_grooup">
-            <el-button type="primary" size="small" @click="addLine">增行</el-button>
+            <el-button type="primary" size="small" v-if="!sonDisable" @click="addLine">增行</el-button>
           </div>
           <el-table
           :data="materialInfo" 
@@ -540,6 +532,8 @@
 <script>
 import {addOrder, getOrderDetail, editOrder} from '@/api/purchase/transferOrder.js'
 import Refers from '@/components/Refers/refers.vue'
+// 用于回显参照框数据
+import { getRefer } from '@/api/purchase/basic.js'
 import TreeRefers from '@/components/Refers/treeRefer.vue'
 // 明细行选择物料参照
 import popDialog from '@/components/PopDialog/index.vue'
@@ -617,6 +611,8 @@ export default {
       manOptions: [],
       deptOptions: [],
       currencyOptions: [],
+      ruHouseOptions: [],
+      chuHouseOptions: [],
       liacenterOptions: [],
       basicRules: {},
       materialInfo: [],
@@ -676,6 +672,43 @@ export default {
           this.receiveInfo = res.data.stAllotReceiveDeliverList
           this.priceList = res.data.stAllotReceiveExecuteList
           this.resultList = res.data.stAllotReceiveExpenseList
+          if(this.basicForm.deliveryInventoryOrg) { this.reBackRefer('ORG_PARAM', this.basicForm.deliveryInventoryOrg, '调出库存组织') }
+          if(this.basicForm.storageInventoryOrg) { this.reBackRefer('ORG_PARAM', this.basicForm.storageInventoryOrg, '调入库存组织') }
+          if(this.basicForm.businessPersonal) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.businessPersonal) }
+          if(this.basicForm.deliveryDept) { this.reBackRefer('DEPT_PARAM', this.basicForm.deliveryDept) }
+          if(this.basicForm.currency) { this.reBackRefer('CURRENCY_PARAM', this.basicForm.currency) }
+          if(this.basicForm.storageWarehouse) { this.reBackRefer('WAREHOUSE_PARAM', this.basicForm.storageWarehouse, '调入仓库') }
+          if(this.basicForm.deliveryWarehouse) { this.reBackRefer('WAREHOUSE_PARAM', this.basicForm.deliveryWarehouse, '调出仓库') }
+          if(this.basicForm.liacenter) { this.reBackRefer('LIACENTER_PARAM', this.basicForm.liacenter) }
+        }
+      })
+    },
+    // 回显参照框
+    reBackRefer(type, id, title) {
+      getRefer({ type: type, id: id, title: title }).then(res => {
+        if (type == 'ORG_PARAM' && title == '调出库存组织') {
+          this.chuOrgOptions = res.rows
+        }
+        if (type == 'ORG_PARAM' && title == '调入库存组织') {
+          this.ruOrgOptions = res.rows
+        }
+        if (type == 'CONTACTS_PARAM') {
+          this.manOptions = res.rows
+        }
+        if (type == 'DEPT_PARAM') {
+          this.deptOptions = res.rows
+        }
+        if (type == 'CURRENCY_PARAM') {
+          this.currencyOptions = res.rows
+        }
+        if (type == 'LIACENTER_PARAM') {
+          this.liacenterOptions = res.rows
+        }
+        if (type == 'WAREHOUSE_PARAM' && title == '调入仓库') {
+          this.ruHouseOptions = res.rows
+        }
+        if (type == 'WAREHOUSE_PARAM' && title == '调出仓库') {
+          this.chuHouseOptions = res.rows
         }
       })
     },
@@ -741,6 +774,12 @@ export default {
         this.basicForm.storageInventoryOrg = selection[0].id
         this.basicForm.storageInventoryOrgName = selection[0].name
         this.basicForm.onRouteAffilliation = selection[0].name
+        // 选择调入库存组织时判断调拨方式
+        if (this.basicForm.storageInventoryOrg == this.basicForm.deliveryInventoryOrg) {
+          this.basicForm.allotType = '4'
+        } else {
+          this.basicForm.allotType = '2'
+        }
       }
       if (this.referCondition.title == '调出业务员') {
         this.manOptions = selection
@@ -757,6 +796,16 @@ export default {
         this.basicForm.currency = selection[0].id
         this.basicForm.currencyName = selection[0].name
       }
+      if (this.referCondition.title == '调入仓库') {
+        this.ruHouseOptions = selection
+        this.basicForm.storageWarehouse = selection[0].id
+        this.basicForm.storageWarehouseName = selection[0].name
+      }
+      if (this.referCondition.title == '调出仓库') {
+        this.chuHouseOptions = selection
+        this.basicForm.deliveryWarehouse = selection[0].id
+        this.basicForm.deliveryWarehouseName = selection[0].name
+      }
     },
     chooseTreeRefer(type, isPage, title) {
       this.referCondition.type = type

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

@@ -8,7 +8,6 @@
               <el-input
               v-model="queryParams.dckczz"
               size="small"
-              placeholder=""
               clearable
               style="width: 200px"
               />
@@ -18,6 +17,7 @@
             <el-form-item label="单据日期">
               <el-date-picker
                style="width: 240px"
+               size="small"
                 v-model="queryParams.billDate"
                 type="daterange"
                 range-separator="至"
@@ -155,7 +155,7 @@
           :total=total>
         </el-pagination>
 
-        <el-tabs style="margin-top: 10px;" type="border-card">
+        <el-tabs style="margin-top: 10px;">
           <el-tab-pane label="物料信息">
             <el-table
             :data="materialInfo" 

+ 1 - 1
vue.config.js

@@ -37,7 +37,7 @@ 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本地