yangfeng
2023-07-21 fde4963aaa85d4f02a58ed8d5cc58396604537ae
服务管理相关联调
22个文件已修改
3个文件已添加
1506 ■■■■ 已修改文件
src/main.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/getClientName.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/backgroundConfig/memberManage/AddMemberManageDialog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/backgroundConfig/rolePermssion/AddRolePermssionDialog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/client/AddClientManageDialog.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/contacts/AddContactsDialog.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/client/followupRecords/AddFollowupRecordsDialog.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/other/commonDialog/SelectClientDialog.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/contractManage/AddContractManageDialog.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/generatePlan/AddGeneratePlanDialog.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/AddMasterOrderDialog.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/masterOrder/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/quotation/AddQuotationDialog.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/refundForm/AddRefundFormDialog.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/AddSalesDetailsDialog.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesDetails/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/salesReturn/AddSalesReturnDialog.vue 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/AddSubOrderDialog.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sales/subOrder/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/orderManage/AddOrderManageDialog.vue 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceContract/AddServiceContractDialog.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js
@@ -1,6 +1,7 @@
import Vue from "vue"
import App from "./App.vue"
import router from "./router"
import store from "./store"
import ElementUI from "element-ui"
import "element-ui/lib/theme-chalk/index.css"
import "@/assets/style/index.scss"
@@ -12,5 +13,6 @@
new Vue({
  router,
  store,
  render: (h) => h(App)
}).$mount("#app")
src/store/index.js
New file
@@ -0,0 +1,10 @@
import Vue from "vue"
import Vuex from "vuex"
import getClientName from "./modules/getClientName"
Vue.use(Vuex)
export default new Vuex.Store({
  modules: {
    getClientName
  }
})
src/store/modules/getClientName.js
New file
@@ -0,0 +1,24 @@
import { getClientList } from "@/api/client/client" // 导入接口
import { Message } from "element-ui"
export default {
  state: {
    clientList: [] // 客户列表
  },
  mutations: {
    clientNameList(state, payload) {
      state.clientList = payload
    }
  },
  actions: {
    geClient(context) {
      getClientList().then((res) => {
        if (res.code == 200) {
          context.commit("clientNameList", res.data.list)
        } else {
          Message.error(res.msg)
        }
      })
    }
  }
}
src/views/backgroundConfig/memberManage/AddMemberManageDialog.vue
@@ -404,6 +404,7 @@
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
src/views/backgroundConfig/rolePermssion/AddRolePermssionDialog.vue
@@ -300,6 +300,7 @@
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
src/views/client/client/AddClientManageDialog.vue
@@ -677,29 +677,21 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .client-name {
      .custom-name,
      .common-select {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
      .common-select {
        .common-select-sel {
          width: 270px;
        }
      }
    }
    // .address-view {
    //   margin-top: 10px;
    //   padding-right: 40px;
    // }
    .annex-view {
      display: flex;
      color: #6166d3;
src/views/client/contacts/AddContactsDialog.vue
@@ -5,6 +5,7 @@
      :visible.sync="editConfig.visible"
      :width="dialogWidth"
      :before-close="handleClose"
      :close-on-click-modal="false"
    >
      <el-form
        ref="form"
@@ -31,11 +32,19 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_id">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn">
                      <i class="el-icon-circle-plus-outline"></i>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
@@ -212,6 +221,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保 存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取 消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -219,6 +234,7 @@
<script>
import { getAddContact, getUpdateContact } from "@/api/client/contacts"
import { getAllData } from "@/api/client/client"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddContactsDialog",
  props: {
@@ -228,31 +244,17 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            name: "",
            number: "",
            client_id: "",
            phone: "",
            position: "",
            member_id: "5",
            is_first: false,
            wechat: "1",
            birthday: "",
            email: "",
            nextFollowupDate: "",
            country_id: "",
            province_id: "",
            city_id: "",
            region_id: "",
            postalCode: "",
            desc: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: {},
  computed: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -278,10 +280,16 @@
      cityOptions: [], // 城市
      regionOptions: [], // 区域
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -354,7 +362,7 @@
        id: this.editConfig.title === "新建" ? 0 : data.id,
        birthday: data.birthday || "",
        city_id: data.city_id || 0,
        client_id: 0,
        client_id: parseInt(data.client_id) || 0,
        country_id: data.country_id || 0,
        desc: data.desc || "",
        email: data.email || "",
@@ -369,6 +377,33 @@
        wechat: data.wechat || ""
      }
      return params
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
@@ -404,22 +439,18 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
      .custom-name,
      .common-select {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          font-size: 18px;
          cursor: pointer;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -23,9 +23,18 @@
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_name"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit-outline"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -181,6 +190,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保 存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取 消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -188,6 +203,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddFollowRecord, getUpdateFollowRecord } from "@/api/client/followupRecords"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddFollowupRecordsDialog",
  props: {
@@ -197,30 +213,18 @@
        return {
          visible: false,
          title: "新建",
          infomation: {
            client_name: "",
            number: "",
            client_status_id: "",
            contact_id: "",
            member_id: "",
            topic: "",
            record: "",
            phoneNumber: "",
            sale_chance_id: "",
            sales_leads_id: "",
            follow_time: "",
            next_follow_time: "",
            purpose: "",
            content: ""
          }
          infomation: {}
        }
      }
    }
  },
  components: {},
  components: { SelectClientDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    },
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
@@ -236,10 +240,16 @@
      clientStatusOptions: [], // 客户状态
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -331,6 +341,33 @@
      }
      return params
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -365,28 +402,20 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          font-size: 18px;
          cursor: pointer;
        }
      }
    }
    .address-view {
      margin-top: 10px;
      padding-right: 40px;
      .common-select {
        .common-select-sel {
          width: 270px;
        }
      }
    }
    .annex-view {
      display: flex;
src/views/other/commonDialog/SelectClientDialog.vue
New file
@@ -0,0 +1,205 @@
<template>
  <div class="edit-selClient-box">
    <el-dialog
      :title="'客户管理'"
      :visible.sync="editConfig.editVisible"
      :width="dialogWidth"
      :before-close="handleClose"
      :append-to-body="true"
      :close-on-click-modal="false"
    >
      <div class="bg-view">
        <div class="query-bg">
          <el-input placeholder="请输入内容" v-model="queryInput" size="mini" class="input-with-select">
            <el-select v-model="select" slot="prepend" placeholder="请选择">
              <el-option label="全部字段" value="1"></el-option>
              <el-option label="客户编号" value="2"></el-option>
              <el-option label="客户状态" value="3"></el-option>
              <el-option label="销售负责人" value="4"></el-option>
              <el-option label="法定代表人" value="5"></el-option>
              <el-option label="注册时间" value="6"></el-option>
              <el-option label="经营范围" value="7"></el-option>
              <el-option label="详细地址" value="8"></el-option>
              <el-option label="备注" value="9"></el-option>
            </el-select>
          </el-input>
          <div class="btn">
            <el-button type="primary" size="mini" disabled>设置字段</el-button>
            <el-button type="primary" size="mini" disabled>快速创建</el-button>
          </div>
        </div>
        <el-table
          :data="tableData"
          border
          size="mini"
          v-loading="loading"
          :header-cell-style="{ background: '#f7f7f7' }"
        >
          <el-table-column label="客户名称" prop="name" show-overflow-tooltip>
            <template slot-scope="scope">
              <!-- <div style="margin-right: 10px"> -->
              <span class="sel-name" @click="selNameClick(scope.row)">{{ scope.row.name }}</span>
              <!-- </div> -->
            </template>
          </el-table-column>
          <el-table-column label="客户编号" prop="number"></el-table-column>
          <el-table-column label="客户状态" prop="client_status"></el-table-column>
          <el-table-column label="销售负责人" prop="member_id"></el-table-column>
          <!-- <el-table-column label="线索升级状态" prop="setDefault"></el-table-column> -->
          <el-table-column label="法定代表人" prop="representative"></el-table-column>
          <el-table-column label="注册时间" prop="registration_time" show-overflow-tooltip>
            <template slot-scope="scope">
              <span>{{
                dateFormat("YYYY-mm-dd HH:MM:SS", scope.row.registration_time) === "1900-01-01 08:00:00"
                  ? "--"
                  : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row.registration_time)
              }}</span>
            </template>
          </el-table-column>
          <el-table-column label="经营范围" prop="business_scope"></el-table-column>
          <el-table-column label="详细地址" prop="detail_address"></el-table-column>
          <el-table-column label="备注" prop="remark"></el-table-column>
          <div slot="empty">
            <el-empty :image-size="100"></el-empty>
          </div>
        </el-table>
        <div slot="footer" class="dialog-footer">
          <div class="remark">说明:支持多字段模糊查询,仅显示符合条件的前5条数据</div>
        </div>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { getClientList } from "@/api/client/client"
export default {
  name: "EditSelClientDialog",
  props: {
    editCommonConfig: {
      type: Object,
      default: () => {
        return {
          editVisible: false,
          title: "",
          infomation: {
            name: "",
            color: "",
            setDefault: ""
          }
        }
      }
    }
  },
  components: {},
  computed: {},
  data() {
    return {
      dialogWidth: "50%",
      editConfig: this.editCommonConfig,
      queryInput: "",
      select: "1",
      tableData: [],
      searchSelOptions: [],
      loading: false
    }
  },
  created() {
    this.getData()
  },
  methods: {
    handleClose() {
      this.editConfig.editVisible = false
    },
    // 请求数据
    async getData() {
      this.loading = true
      await getClientList()
        .then((res) => {
          console.log(res)
          if (res.code === 200) {
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item,
                  client_status: item.client_status.name
                }
              })
              this.tableData = list.slice(0, 5) || []
            } else {
              this.tableData = []
            }
          } else {
            this.tableData = []
          }
          this.loading = false
        })
        .catch((err) => {
          console.log(err)
          this.tableData = []
          this.loading = false
        })
    },
    selNameClick(row) {
      this.editConfig.editVisible = false
      this.$emit("selClient", row)
    },
    // 时间显示
    dateFormat(fmt, date) {
      let ret = ""
      date = new Date(date)
      const opt = {
        "Y+": date.getFullYear().toString(), // 年
        "m+": (date.getMonth() + 1).toString(), // 月
        "d+": date.getDate().toString(), // 日
        "H+": date.getHours().toString(), // 时
        "M+": date.getMinutes().toString(), // 分
        "S+": date.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
      }
      for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt)
        if (ret) {
          fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
        }
      }
      return fmt
    }
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.bg-view {
  margin: 10px;
  .query-bg {
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    .el-input {
      width: 310px;
      .el-select {
        width: 100px;
      }
    }
    .btn {
      float: right;
    }
  }
}
.sel-name {
  color: $color-primary;
  cursor: pointer;
}
.dialog-footer {
  height: 40px;
  line-height: 40px;
  color: red;
}
::v-deep {
  .input-with-select .el-input-group__prepend {
    background-color: #fff;
  }
}
</style>
src/views/sales/contractManage/AddContractManageDialog.vue
@@ -21,11 +21,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_id">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -153,6 +162,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -160,6 +175,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddContract, getUpdateContract } from "@/api/sales/contractManage"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddContractManageDialog",
  props: {
@@ -174,8 +190,12 @@
      }
    }
  },
  components: {},
  computed: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -185,18 +205,19 @@
        member_id: [{ required: true, message: "请选择", trigger: "change" }]
      },
      memberOptions: [],
      statusOptions: [
        { id: "1", name: "待审批" },
        { id: "2", name: "审批中" },
        { id: "3", name: "已审批" },
        { id: "4", name: "已归档" }
      ], // 合同状态
      statusOptions: [], // 合同状态
      approvalWorkflowOptions: [], // 审批流程
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -204,6 +225,7 @@
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
          this.statusOptions = res.data.serviceContractStatus
        })
        .catch((err) => {
          console.log(err)
@@ -271,6 +293,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -305,7 +354,8 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
      .custom-name,
      .common-select {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
@@ -313,14 +363,8 @@
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
src/views/sales/generatePlan/AddGeneratePlanDialog.vue
@@ -21,11 +21,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -133,6 +142,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -140,6 +155,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddPlan, getUpdatePlan } from "@/api/sales/generatePlan"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddGeneratePlanDialog",
  props: {
@@ -154,8 +170,12 @@
      }
    }
  },
  components: {},
  computed: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -166,10 +186,16 @@
      },
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -249,6 +275,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -288,6 +341,7 @@
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
          cursor: pointer;
        }
      }
    }
src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -20,12 +20,21 @@
          <div v-if="isUnflod" class="basic-info-title">基本信息</div>
          <div class="basic-info-view">
            <el-row>
              <el-col v-if="isUnflod" :span="12">
                <el-form-item label="客户名称" prop="client_id">
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -105,6 +114,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -112,6 +127,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "QuotationDialog",
  props: {
@@ -126,8 +142,12 @@
      }
    }
  },
  components: {},
  computed: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -138,10 +158,16 @@
      },
      memberOptions: [],
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -216,6 +242,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -255,6 +308,7 @@
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
          cursor: pointer;
        }
      }
    }
src/views/sales/masterOrder/index.vue
@@ -75,7 +75,7 @@
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "number", min: 100 }, // 单据编号
          { label: "客户名称", prop: "client_id", min: 120 }, // 客户名称
          { label: "客户名称", prop: "client_name", min: 120 }, // 客户名称
          { label: "服务开始时间", prop: "start_time", isTime: true }, // 服务开始时间
          { label: "服务截止时间", prop: "end_time", isTime: true }, // 服务截止时间
          { label: "合同金额", prop: "money" }, // 合同金额
@@ -99,7 +99,8 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name
                }
              })
              this.tableList.tableInfomation = list || []
src/views/sales/quotation/AddQuotationDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_id">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -193,21 +202,26 @@
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
<script>
// import CommonSelectView from "@/components/makepager/CommonSelectView"
// import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddQuotation, getUpdateQuotation } from "@/api/sales/quotation"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "QuotationDialog",
  props: {
@@ -222,10 +236,13 @@
      }
    }
  },
  // components: { CommonSelectView, CommonFormTableView },
  components: { SelectClientDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    },
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
@@ -240,11 +257,7 @@
      },
      memberOptions: [],
      quotationStatusOptions: [{ id: 1, name: "不知道" }], // 报价单状态
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
        { value: "2", label: "英镑(£)" },
        { value: "3", label: "欧元(€)" }
      ], // 币种
      currencyOptions: [], // 币种
      approvalWorkflowOptions: [], // 审批流程
      productTableList: {},
      showSummary: {
@@ -252,10 +265,16 @@
        total: true,
        sumProp: ["other1", "other2", "other3", "other4"],
        mergeNumber: 3
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -263,8 +282,8 @@
    getCommonData() {
      getAllData()
        .then((res) => {
          // 缺 币种 报价单状态
          this.memberOptions = res.data.member
          this.quotationStatusOptions = res.data.quotationStatus
        })
        .catch((err) => {
          console.log(err)
@@ -335,6 +354,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -391,13 +437,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/sales/refundForm/AddRefundFormDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -225,6 +234,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -233,6 +248,7 @@
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesRefund, getUpdateSalesRefund } from "@/api/sales/refundForm"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddRefundFormDialog",
  props: {
@@ -247,8 +263,12 @@
      }
    }
  },
  components: { CommonFormTableView },
  computed: {},
  components: { CommonFormTableView, SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -261,25 +281,11 @@
        account: [{ required: true, message: "请选择", trigger: "change" }]
      },
      memberOptions: [],
      selSourceOrderOptions: [{ value: "1", label: "销售退货单" }], // 选择源单
      refundMethodOptions: [
        { value: "1", label: "现金" },
        { value: "2", label: "支票" },
        { value: "3", label: "电汇" },
        { value: "4", label: "邮政汇款" },
        { value: "5", label: "网上银行" },
        { value: "6", label: "其他" }
      ], // 付款方式
      accountOptions: [{ value: "1", label: "人民币账户" }], // 账户
      isInvoiceOptions: [
        { value: "1", label: "未开" },
        { value: "2", label: "已开" }
      ], // 是否开票
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
        { value: "2", label: "英镑(£)" },
        { value: "3", label: "欧元(€)" }
      ], // 币种
      // selSourceOrderOptions: [{ value: "1", label: "销售退货单" }], // 选择源单
      refundMethodOptions: [], // 付款方式
      accountOptions: [], // 账户
      isInvoiceOptions: [], // 是否开票
      currencyOptions: [], // 币种
      approvalWorkflowOptions: [], // 审批流程
      productTableList: {},
      showSummary: {
@@ -287,10 +293,16 @@
        total: true,
        sumProp: ["other1", "other2", "other3", "other4"],
        mergeNumber: 5
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -299,6 +311,10 @@
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
          this.refundMethodOptions = res.data.refundMethod
          this.accountOptions = res.data.accountId
          this.isInvoiceOptions = res.data.isInvoice
          this.currencyOptions = res.data.currency
        })
        .catch((err) => {
          console.log(err)
@@ -381,6 +397,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -437,13 +480,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -257,6 +266,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -265,6 +280,7 @@
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesDetails, getUpdateSalesDetails } from "@/api/sales/salesDetails"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddSalesDetailsDialog",
  props: {
@@ -279,8 +295,12 @@
      }
    }
  },
  components: { CommonFormTableView },
  computed: {},
  components: { CommonFormTableView, SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -307,10 +327,16 @@
        total: true,
        sumProp: ["other1", "other7"],
        mergeNumber: 2
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -407,6 +433,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -447,13 +500,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/sales/salesDetails/index.vue
@@ -87,7 +87,7 @@
        tableInfomation: [],
        tableColumn: [
          { label: "订单编号", prop: "number" },
          { label: "客户名称", prop: "clientId" },
          { label: "客户名称", prop: "client_name" },
          { label: "签约日期", prop: "signTime", isTime: true, width: 150 },
          { label: "销售负责人", prop: "memberId" },
          { label: "出库状态", prop: "outboundStatus" },
@@ -119,7 +119,8 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name
                }
              })
              this.tableList.tableInfomation = list || []
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="client_id">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -467,6 +476,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -474,6 +489,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddSaleChance, getUpdateSaleChance } from "@/api/sales/salesOpportunity"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddSalesOpportunityDialog",
  props: {
@@ -488,10 +504,13 @@
      }
    }
  },
  components: {},
  components: { SelectClientDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    },
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
@@ -513,20 +532,22 @@
      saleStageOptions: [], // 销售阶段
      oldCustomerMarketOptions: [], // 老客户营销
      possibleOptions: [], // 可能性
      currencyOptions: [
        {
          id: 1,
          name: "人民币"
        }
      ], // 币种
      currencyOptions: [], // 币种
      currentStateOptions: [], // 当前状态
      countryOptions: [], // 国家
      provinceOptions: [], // 省份
      cityOptions: [], // 城市
      regionOptions: [] // 区域
      regionOptions: [], // 区域
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      },
      restaurants: []
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -543,6 +564,9 @@
          this.provinceOptions = res.data.province
          this.cityOptions = res.data.city
          this.regionOptions = res.data.region
          this.possibleOptions = res.data.possibility
          this.currencyOptions = res.data.currency
          this.currentStateOptions = res.data.status
        })
        .catch((err) => {
          console.log(err)
@@ -638,6 +662,33 @@
      }
      return params
    },
    // 选择用户相关方法
    querySearchAsync(queryString, cb) {
      console.log(this.clientList)
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -662,22 +713,18 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
      .custom-name,
      .common-select {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
          cursor: pointer;
        }
      }
      .common-select {
        display: flex;
        .common-select-sel {
          width: 270px;
        }
        .common-select-btn {
          margin-left: 5px;
          font-size: 16px;
          cursor: pointer;
        }
      }
    }
src/views/sales/salesReturn/AddSalesReturnDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -166,6 +175,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -174,6 +189,7 @@
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSalesReturn, getUpdateSalesReturn } from "@/api/sales/salesReturn"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddSalesReturnDialog",
  props: {
@@ -188,8 +204,12 @@
      }
    }
  },
  components: { CommonFormTableView },
  computed: {},
  components: { CommonFormTableView, SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -201,17 +221,9 @@
      },
      memberOptions: [],
      selSourceOrderOptions: [], // 选择源单
      repositoryOptions: [
        { value: "1", label: "总仓" },
        { value: "2", label: "赠品仓" },
        { value: "3", label: "其他仓" }
      ], // 退入仓库
      repositoryOptions: [], // 退入仓库
      statusOptions: [], // 状态
      currencyOptions: [
        { value: "1", label: "人民币(¥)" },
        { value: "2", label: "英镑(£)" },
        { value: "3", label: "欧元(€)" }
      ], // 币种
      currencyOptions: [], // 币种
      productTableList: {},
      showSummary: {
        show: true,
@@ -219,10 +231,16 @@
        refundable: true,
        sumProp: ["other1", "other2", "other3", "other4"],
        mergeNumber: 4
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -231,6 +249,9 @@
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
          this.repositoryOptions = res.data.repository
          this.currencyOptions = res.data.currency
          this.statusOptions = res.data.status
        })
        .catch((err) => {
          console.log(err)
@@ -312,6 +333,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -358,13 +406,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -21,11 +21,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -169,6 +178,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -177,9 +192,10 @@
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "SubOrderDialog",
  components: { CommonFormTableView },
  components: { CommonFormTableView, SelectClientDialog },
  props: {
    editCommonConfig: {
      type: Object,
@@ -192,7 +208,11 @@
      }
    }
  },
  computed: {},
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -219,10 +239,16 @@
        total: false,
        sumProp: ["other1", "other7"],
        mergeNumber: 7
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -310,6 +336,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -367,6 +420,7 @@
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
          cursor: pointer;
        }
      }
    }
src/views/sales/subOrder/index.vue
@@ -79,7 +79,7 @@
        tableInfomation: [],
        tableColumn: [
          { label: "单据编号", prop: "number", min: 120 }, // 单据编号
          { label: "客户名称", prop: "clientId", min: 120 }, // 客户名称
          { label: "客户名称", prop: "client_name", min: 120 }, // 客户名称
          { label: "销售总单", prop: "masterOrderId", min: 90 }, // 销售总单
          { label: "负责人", prop: "memberId" }, // 负责人
          { label: "审批状态", prop: "approvalStatus" }, // 审批状态
@@ -103,7 +103,8 @@
            if (res.data.list && res.data.list.length > 0) {
              const list = res.data.list.map((item) => {
                return {
                  ...item
                  ...item,
                  client_name: item.client.name
                }
              })
              this.tableList.tableInfomation = list || []
src/views/service/orderManage/AddOrderManageDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -181,12 +190,17 @@
          </div> -->
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">保并提交审批</el-button> -->
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -194,6 +208,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddOrderManage, getUpdateOrderManage } from "@/api/serviceManage/orderManage"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddOrderManageDialog",
  props: {
@@ -208,8 +223,11 @@
      }
    }
  },
  components: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    },
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    }
@@ -226,14 +244,20 @@
      },
      orderTypeOptions: [{ id: 1, name: "类型1" }], // 工单类型
      reportSourceOptions: [], // 报修来源
      sourceSheetOptions: [
        { value: "1", label: "销售明细单" },
        { value: "2", label: "服务合同" }
      ],
      approvalWorkflowOptions: [] // 审批流程
      // sourceSheetOptions: [
      //   { value: "1", label: "销售明细单" },
      //   { value: "2", label: "服务合同" }
      // ],
      approvalWorkflowOptions: [], // 审批流程
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -241,6 +265,8 @@
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
          this.orderTypeOptions = res.data.orderType
          this.reportSourceOptions = res.data.reportSource
        })
        .catch((err) => {
          console.log(err)
@@ -311,6 +337,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -335,13 +388,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -273,6 +282,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -281,6 +296,7 @@
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import { getAllData } from "@/api/client/client"
import { getAddServiceContract, getUpdateServiceContract } from "@/api/serviceManage/serviceContract"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddServiceContractDialog",
  props: {
@@ -295,10 +311,13 @@
      }
    }
  },
  components: { CommonFormTableView },
  components: { CommonFormTableView, SelectClientDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    },
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
@@ -325,10 +344,16 @@
        total: true,
        sumProp: ["other1", "other2", "other3", "other4"],
        mergeNumber: 3
      },
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.setTableForm()
    this.getCommonData()
  },
@@ -338,6 +363,9 @@
        .then((res) => {
          if (res.code === 200) {
            this.memberOptions = res.data.member
            this.contractTypeOptions = res.data.serviceContractType
            this.contractStatusOptions = res.data.serviceContractStatus
            this.currencyOptions = res.data.currency
          }
        })
        .catch((err) => {
@@ -427,6 +455,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -483,13 +538,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="name">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.name"></el-input>
                    <div class="common-select-btn"><i class="el-icon-house" title="工商查询"></i></div>
                    <div class="common-select-btn"><i class="el-icon-search" title="查重"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -400,6 +409,12 @@
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -407,6 +422,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddServiceFeeManage, getUpdateServiceFeeManage } from "@/api/serviceManage/serviceFeeManage"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddServiceFeeManageDialog",
  props: {
@@ -421,8 +437,12 @@
      }
    }
  },
  components: {},
  computed: {},
  components: { SelectClientDialog },
  computed: {
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
    return {
      dialogWidth: "80%",
@@ -448,10 +468,16 @@
      cityOptions: [], // 城市
      regionOptions: [], // 区域
      unflodCollapseStr: "收起",
      isUnflod: true
      isUnflod: true,
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -574,6 +600,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -608,13 +661,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -22,11 +22,20 @@
          <div class="basic-info-view">
            <el-row>
              <el-col :span="12">
                <el-form-item label="客户名称" prop="clientId">
                <el-form-item label="客户名称" prop="client_name">
                  <div class="custom-name">
                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div>
                    <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div>
                    <el-autocomplete
                      v-model="editConfig.infomation.client_name"
                      :fetch-suggestions="querySearchAsync"
                      value-key="name"
                      @select="handleSelectClient"
                    ></el-autocomplete>
                    <div class="common-select-btn" @click="selClientClick">
                      <i class="el-icon-circle-plus-outline" title="选择"></i>
                    </div>
                    <div class="common-select-btn" @click="clearupClient">
                      <i class="el-icon-edit-outline" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
@@ -189,11 +198,16 @@
          </div>
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button>
        <el-button size="small" @click="editConfig.visible = false">取消</el-button>
      </div>
      <!-- 选择客户 -->
      <SelectClientDialog
        v-if="editSelectClientConfig.editVisible"
        :edit-common-config="editSelectClientConfig"
        @selClient="selClient"
      />
    </el-dialog>
  </div>
</template>
@@ -201,6 +215,7 @@
<script>
import { getAllData } from "@/api/client/client"
import { getAddServiceFollowup, getUpdateServiceFollowup } from "@/api/serviceManage/serviceFollowup"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
export default {
  name: "AddServiceFollowupDialog",
  props: {
@@ -215,10 +230,13 @@
      }
    }
  },
  components: {},
  components: { SelectClientDialog },
  computed: {
    searchCommonHeight() {
      return this.$refs.searchCommonView.offsetHeight
    },
    clientList() {
      return this.$store.state.getClientName.clientList
    }
  },
  data() {
@@ -234,10 +252,16 @@
      solveRateOptions: [], // 解决率
      oldMemberOptions: [], // 原服务人员
      isVisitOptions: [], // 服务人员是否来过
      memberOptions: []
      memberOptions: [],
      editSelectClientConfig: {
        editVisible: false,
        title: "",
        infomation: {}
      }
    }
  },
  created() {
    this.$store.dispatch("geClient")
    this.getCommonData()
  },
  methods: {
@@ -245,6 +269,11 @@
      getAllData()
        .then((res) => {
          this.memberOptions = res.data.member
          this.satisfactionOptions = res.data.satisfaction // 满意度
          this.timelyRateOptions = res.data.timely_rate // 及时率
          this.solveRateOptions = res.data.solve_rate // 解决率
          this.oldMemberOptions = res.data.member // 原服务人员
          this.isVisitOptions = res.data.isVisit // 服务人员是否来过
        })
        .catch((err) => {
          console.log(err)
@@ -319,6 +348,33 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 选择客户相关方法
    querySearchAsync(queryString, cb) {
      var restaurants = this.clientList
      var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
      cb(results)
    },
    createStateFilter(queryString) {
      return (state) => {
        return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
      }
    },
    handleSelectClient(item) {
      this.editConfig.infomation.client_id = item.id
    },
    selClientClick() {
      this.editSelectClientConfig.editVisible = true
    },
    selClient(row) {
      console.log(row)
      this.editConfig.infomation.client_name = row.name
      this.editConfig.infomation.client_id = row.id
    },
    // 清除已选择用户
    clearupClient() {
      this.editConfig.infomation.client_name = ""
      this.editConfig.infomation.client_id = 0
    },
    // 添加附件
    addAnnexClick() {},
    // 设置允许上传文件格式
@@ -343,13 +399,7 @@
    .basic-info-view {
      margin-top: 10px;
      padding-right: 40px;
      .custom-name {
        display: flex;
        .common-select-btn {
          margin-left: 5px;
          font-size: 18px;
        }
      }
      .custom-name,
      .common-select {
        display: flex;
        .common-select-sel {