Browse Source

1.产品名称 下拉选择器 新加自定义模板
2.客户修改公共组件允许远程检索
3.出口贸易 业务下的客户都允许远程检索

Qukatie 17 hours ago
parent
commit
dd5fd8af45

+ 134 - 51
src/components/crop-select/main.vue

@@ -3,38 +3,67 @@
     <div style="display:flex">
       <slot v-if="slot" name="slot"></slot>
       <span v-else style="width: 100%;">
-        <el-select v-if="gysType == 'CK'" size="small" v-model="value" placeholder="请选择"
-          @input="$emit('balabala', value)" :disabled="disabled" filterable clearable style="width:100%"
-          :multiple="multiple ? multiple : false" :collapse-tags="collapseTags ? collapseTags : false"
-          @change="corpChange">
-          <el-option v-for="item in corpList" :key="item.id" :label="item.code" :value="item.id">
-          </el-option>
+        <el-select
+          v-if="gysType == 'CK'"
+          size="small"
+          v-model="value"
+          placeholder="请选择"
+          @input="$emit('balabala', value)"
+          :disabled="disabled"
+          filterable
+          clearable
+          style="width:100%"
+          :multiple="multiple ? multiple : false"
+          :collapse-tags="collapseTags ? collapseTags : false"
+          @change="corpChange"
+          :loading="loading"
+          :remote="remote"
+          :remote-method="remoteMethod"
+        >
+          <el-option v-for="item in corpList" :key="item.id" :label="item.code" :value="item.id"> </el-option>
         </el-select>
-        <el-select v-else size="small" v-model="value" placeholder="请选择" @input="$emit('balabala', value)"
-          :disabled="disabled" filterable clearable style="width:100%" @clear="clear"
-          :multiple="multiple ? multiple : false" :collapse-tags="collapseTags ? collapseTags : false"
-          @change="corpChange">
+        <el-select
+          v-else
+          size="small"
+          v-model="value"
+          placeholder="请选择"
+          @input="$emit('balabala', value)"
+          :disabled="disabled"
+          filterable
+          clearable
+          style="width:100%"
+          @clear="clear"
+          :multiple="multiple ? multiple : false"
+          :collapse-tags="collapseTags ? collapseTags : false"
+          @change="corpChange"
+          :loading="loading"
+          :remote="remote"
+          :remote-method="remoteMethod"
+        >
           <template v-if="zhKey">
-            <el-option v-for="item in corpList" :key="item.id" :label="label ? item[label] : item.cname"
-              :value="item.cname">
-            </el-option>
+            <el-option v-for="item in corpList" :key="item.id" :label="label ? item[label] : item.cname" :value="item.cname"> </el-option>
           </template>
           <template v-else>
-            <el-option v-for="item in corpList" :key="item.id" :label="label ? item[label] : item.cname"
-              :value="item.id">
-            </el-option>
+            <el-option v-for="item in corpList" :key="item.id" :label="label ? item[label] : item.cname" :value="item.id"> </el-option>
           </template>
         </el-select>
       </span>
-      <el-button icon="el-icon-search" size="mini" v-if="label != 'shortName'" :disabled="disabled"
-        @click="openDialog()"></el-button>
+      <el-button icon="el-icon-search" size="mini" v-if="label != 'shortName'" :disabled="disabled" @click="openDialog()"></el-button>
       <el-tooltip v-if="refresh" effect="dark" content="获取最新资料" placement="top-start">
-        <el-button icon="el-icon-refresh" size="mini" v-if="label != 'shortName'" @click="refreshData"
-          style="margin-left:0px;"></el-button>
+        <el-button icon="el-icon-refresh" size="mini" v-if="label != 'shortName'" @click="refreshData" style="margin-left:0px;"></el-button>
       </el-tooltip>
     </div>
-    <el-dialog :title="title" :visible.sync="corpVisible" width="80%" top="5vh" append-to-body @closed="closed"
-      class="el-dialogDeep" :close-on-click-modal="false" v-dialog-drag>
+    <el-dialog
+      :title="title"
+      :visible.sync="corpVisible"
+      width="80%"
+      top="5vh"
+      append-to-body
+      @closed="closed"
+      class="el-dialogDeep"
+      :close-on-click-modal="false"
+      v-dialog-drag
+    >
       <span>
         <el-row>
           <el-col :span="4">
@@ -45,10 +74,23 @@
             </el-scrollbar>
           </el-col>
           <el-col :span="20">
-            <avue-crud :option="tableOption" :data="data" ref="crud" v-model="form" :page.sync="page"
-              :search.sync="search" @search-change="searchChange" @search-reset="searchReset"
-              @selection-change="selectionChange" @on-load="onLoad" @tree-load="treeLoad" @saveColumn="saveColumn"
-              @resetColumn="resetColumn" @refresh-change="refreshChange" :table-loading="loading">
+            <avue-crud
+              :option="tableOption"
+              :data="data"
+              ref="crud"
+              v-model="form"
+              :page.sync="page"
+              :search.sync="search"
+              @search-change="searchChange"
+              @search-reset="searchReset"
+              @selection-change="selectionChange"
+              @on-load="onLoad"
+              @tree-load="treeLoad"
+              @saveColumn="saveColumn"
+              @resetColumn="resetColumn"
+              @refresh-change="refreshChange"
+              :table-loading="loading"
+            >
             </avue-crud>
           </el-col>
         </el-row>
@@ -63,11 +105,7 @@
 
 <script>
 import option from "./configuration/mainList.json";
-import {
-  customerList,
-  allCropList,
-  getDeptLazyTree
-} from "@/api/basicData/customerInformation";
+import { customerList, allCropList, getDeptLazyTree } from "@/api/basicData/customerInformation";
 import { getCustomerCode, getCustomerName } from "@/enums/management-type";
 export default {
   data() {
@@ -122,6 +160,10 @@ export default {
       type: Boolean,
       default: true
     },
+    remote: {
+      type: Boolean,
+      default: false
+    }
   },
   model: {
     prop: "value",
@@ -134,20 +176,65 @@ export default {
     if (!this.slot) {
       allCropList({
         corpType: getCustomerCode(this.corpType),
-        adminProfiles: userObj.role_name != "admin" ? (userObj.role_name != "客户"?userObj.user_id : null): null,
+        adminProfiles: userObj.role_name != "admin" ? (userObj.role_name != "客户" ? userObj.user_id : null) : null,
         corpsTypeName: this.treeType == "CK" ? "货代和物流" : null,
         belongtocompany: this.belongtocompany
       }).then(res => {
         this.corpList = res.data.data;
-        console.log(this.corpList)
+        console.log(this.corpList);
       });
     }
   },
-  mounted() { },
+  mounted() {},
   methods: {
     init() {
       this.openDialog();
     },
+    remoteMethod(query) {
+      console.log(query);
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.corpList = [];
+          this.loading = false;
+          let userObj = JSON.parse(localStorage.getItem("saber-userInfo")).content;
+          allCropList({
+            corpType: getCustomerCode(this.corpType),
+            adminProfiles: userObj.role_name != "admin" ? userObj.user_id : null,
+            corpsTypeName: this.treeType == "CK" ? "货代和物流" : null,
+            belongtocompany: this.belongtocompany,
+            cname: query
+          })
+            .then(res => {
+              this.corpList = res.data.data;
+            })
+            .finally(() => {
+              this.loading = false;
+            });
+        }, 200);
+      } else {
+        this.loading = true;
+        setTimeout(() => {
+          this.corpList = [];
+          this.loading = false;
+          let userObj = JSON.parse(localStorage.getItem("saber-userInfo")).content;
+
+          allCropList({
+            corpType: getCustomerCode(this.corpType),
+            adminProfiles: userObj.role_name != "admin" ? userObj.user_id : null,
+            corpsTypeName: this.treeType == "CK" ? "货代和物流" : null,
+            belongtocompany: this.belongtocompany,
+            cname: query
+          })
+            .then(res => {
+              this.corpList = res.data.data;
+            })
+            .finally(() => {
+              this.loading = false;
+            });
+        }, 200);
+      }
+    },
     refreshData() {
       if (!this.slot) {
         let userObj = JSON.parse(localStorage.getItem("saber-userInfo")).content;
@@ -163,7 +250,7 @@ export default {
     },
     openDialog() {
       let _this = this;
-      this.treeOption.treeLoad = function (node, resolve) {
+      this.treeOption.treeLoad = function(node, resolve) {
         const parentId = node.level === 0 ? 0 : node.data.id;
         getDeptLazyTree({
           parentId: parentId,
@@ -186,13 +273,13 @@ export default {
       this.$refs.crud.toggleSelection();
     },
     importCorp() {
-      if (this.multiple && this.selectionList.length == 0) return this.$message.error('请选择明细')
+      if (this.multiple && this.selectionList.length == 0) return this.$message.error("请选择明细");
       this.$emit("balabala", this.selectionList[0].id);
       this.$emit("getCorpData", {
         ...this.selectionList[0],
         index: this.cropIndex
       });
-      this.$emit("getCorpList", [...this.selectionList])
+      this.$emit("getCorpList", [...this.selectionList]);
       this.corpVisible = false;
     },
     clear() {
@@ -209,12 +296,12 @@ export default {
         let arr = [];
         row.forEach(item => {
           let obj = { id: item };
-          this.$set(obj, 'cname', this.corpList.find(e => e.id == item).cname);
-          arr.push(obj)
-        })
+          this.$set(obj, "cname", this.corpList.find(e => e.id == item).cname);
+          arr.push(obj);
+        });
         this.$nextTick(() => {
-          this.$emit('getCorpList', [...arr]);
-        })
+          this.$emit("getCorpList", [...arr]);
+        });
       }
     },
     refreshChange() {
@@ -278,10 +365,7 @@ export default {
     },
     //列保存触发
     async saveColumn() {
-      const inSave = await this.saveColumnData(
-        this.getColumnName(51),
-        this.option
-      );
+      const inSave = await this.saveColumnData(this.getColumnName(51), this.option);
       if (inSave) {
         this.$message.success("保存成功");
         //关闭窗口
@@ -301,15 +385,14 @@ export default {
       let userObj = JSON.parse(localStorage.getItem("saber-userInfo")).content;
       allCropList({
         corpType: getCustomerCode(this.corpType),
-        adminProfiles: !userObj.role_name.split(',').some(item => item == 'admin' || item == 'administrator') ? userObj.user_id : null,
-        belongtocompany: belongToCompany,
+        adminProfiles: !userObj.role_name.split(",").some(item => item == "admin" || item == "administrator") ? userObj.user_id : null,
+        belongtocompany: belongToCompany
       }).then(res => {
         this.corpList = res.data.data;
       });
-    },
+    }
   }
 };
 </script>
 
-<style scoped lang="scss">
-</style>
+<style scoped lang="scss"></style>

+ 1 - 1
src/views/exportTrade/EcommerceStocking/detailsPage.vue

@@ -137,7 +137,7 @@
           </template>
           <template slot="corpId">
             <crop-select v-model="form.corpId" @getCorpData="getCorpData" corpType="KH"
-              :disabled="detailData.status == 1"></crop-select>
+              :disabled="detailData.status == 1" :remote="true"></crop-select>
           </template>
           <template slot="belongToCorpId">
             <crop-select v-model="form.belongToCorpId" @getCorpData="getCorpsBank" corpType="GS"

+ 1 - 1
src/views/exportTrade/EcommerceStocking/index.vue

@@ -51,7 +51,7 @@
           <el-button type="info" size="small">报表打印</el-button>
         </template>
         <template slot="corpIdSearch">
-          <crop-select v-model="search.corpId" corpType="KH"></crop-select>
+          <crop-select v-model="search.corpId" corpType="KH" :remote="true"></crop-select>
         </template>
         <template slot="portOfLoadSearch">
           <port-info v-model="search.portOfLoad" />

+ 2 - 0
src/views/exportTrade/customerInquiry/components/goodsInfo.vue

@@ -131,6 +131,8 @@
             :remote="true"
             dataName="cname"
             style="width: 100%;"
+            :slotRight="true"
+            rightLabel="corpName"
             @selectChange="cnameChange('cname', $event)"
           ></dic-select>
           <el-button icon="el-icon-search" size="small" @click="pickGoods"></el-button>

+ 1 - 1
src/views/exportTrade/customerInquiry/detailsPage.vue

@@ -41,7 +41,7 @@
           </template> -->
           <template slot="corpId">
             <crop-select v-model="form.corpId" @getCorpData="getCorpData" corpType="KH"
-              :disabled="detailData.status == 1"></crop-select>
+              :disabled="detailData.status == 1" :remote="true"></crop-select>
           </template>
           <template slot="corpAttn">
             <el-select size="small" v-model="form.corpAttn" placeholder="请选择" @change="corpAttnChange" clearable

+ 1 - 1
src/views/exportTrade/invoice/index.vue

@@ -70,7 +70,7 @@
           <el-button type="info" size="small">报表打印</el-button>
         </template>
         <template slot="corpIdSearch">
-          <crop-select v-model="search.corpId" corpType="KH"></crop-select>
+          <crop-select v-model="search.corpId" corpType="KH" :remote="true"></crop-select>
         </template>
         <template slot-scope="scope" slot="menu">
           <!--          <el-button-->

+ 1 - 1
src/views/exportTrade/purchaseInquiry/detailsPage.vue

@@ -37,7 +37,7 @@
             <span style="color: #409EFF;cursor: pointer" @click.stop="khEdit('kh')">客户名称:</span>
           </template>
           <template slot="corpId">
-            <crop-select v-model="form.corpId" corpType="KH" :disabled="detailData.status == 1 || form.ifEnquiry == '询价确认'"></crop-select>
+            <crop-select v-model="form.corpId" corpType="KH" :disabled="detailData.status == 1 || form.ifEnquiry == '询价确认'" :remote="true"></crop-select>
           </template>
           <template slot="dateValidity">
             <el-date-picker

+ 1 - 1
src/views/exportTrade/purchaseInquiry/index.vue

@@ -27,7 +27,7 @@
           <el-button type="info" size="small">报表打印</el-button>
         </template>
         <template slot="corpIdSearch">
-          <crop-select v-model="search.corpId" corpType="KH"></crop-select>
+          <crop-select v-model="search.corpId" corpType="KH" :remote="true"></crop-select>
         </template>
         <template slot="businesDateSearch">
           <el-date-picker

+ 2 - 0
src/views/exportTrade/salesContract/components/goodsInfo.vue

@@ -147,6 +147,8 @@
             :filterable="true"
             :remote="true"
             dataName="cname"
+            :slotRight="true"
+            rightLabel="corpName"
             @selectChange="cnameChange('cname', $event)"
           ></dic-select>
           <el-button icon="el-icon-search" size="small" @click="pickGoods"></el-button>

+ 1 - 1
src/views/exportTrade/salesContract/detailsPage.vue

@@ -136,7 +136,7 @@
           </template>
           <template slot="corpId">
             <crop-select v-model="form.corpId" @getCorpData="getCorpData" corpType="KH"
-              :disabled="detailData.status == 1"></crop-select>
+              :disabled="detailData.status == 1" :remote="true"></crop-select>
           </template>
           <template slot="belongToCorpId">
             <crop-select v-model="form.belongToCorpId" @getCorpData="getCorpsBank" corpType="GS"

+ 1 - 1
src/views/exportTrade/salesContract/index.vue

@@ -59,7 +59,7 @@
           <el-button type="info" size="small">报表打印</el-button>
         </template>
         <template slot="corpIdSearch">
-          <crop-select v-model="search.corpId" corpType="KH"></crop-select>
+          <crop-select v-model="search.corpId" corpType="KH" :remote="true"></crop-select>
         </template>
         <template slot="portOfLoadSearch">
           <port-info v-model="search.portOfLoad" />