فهرست منبع

销售线索新增转化审核功能

qymljy 1 سال پیش
والد
کامیت
549e489fda

+ 112 - 2
src/SManagement/orderclue_detail/components/changeCustomer.vue

@@ -11,7 +11,7 @@
         @close="onClose">
       <div class="drawer__panel">
         <el-row :gutter="20">
-          <el-form :model="form" :rules="rules" ref="form" label-width="85px" label-position="right" size="mini">
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px" label-position="right" size="mini">
             <el-col :span="20">
               <el-form-item label="客户名称:" prop="enterprisename_customer">
                 <el-input v-model="form.enterprisename_customer" placeholder="请输入客户名称" style="width: 100%"></el-input>
@@ -217,6 +217,70 @@
                 <el-input v-model="form.source" placeholder="请输入客户来源" style="width: 100%"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <el-form-item label="归属经销商:" prop="sa_agentsid">
+                <el-popover
+                    v-model="agentsShow"
+                    placement="bottom"
+                    trigger="click"
+                    width="700"
+                    @show="queryAgents">
+                  <el-input
+                      v-model="agentsParam.content.where.condition"
+                      clearable
+                      placeholder="请输入内容"
+                      size="mini"
+                      style="width:300px;margin-bottom: 10px"
+                      @clear="queryAgents(agentsParam.content.pageNumber = 1)"
+                      @keyup.enter.native="queryAgents(agentsParam.content.pageNumber = 1)">
+                    <i slot="prefix" class="el-icon-search"
+                       @click="queryAgents(agentsParam.content.pageNumber = 1)"></i>
+                  </el-input>
+                  <el-table :data="agents.agentsData" :header-cell-style="{background:'#EEEEEE',color:'#333'}"
+                            height="396px"
+                            size="mini" @row-click="agentsData">
+                    <el-table-column
+                        label="经销商编码"
+                        width="100">
+                      <template slot-scope="scope">
+                        <span style="margin-left: 10px">{{ scope.row.agentnum ? scope.row.agentnum : '--' }}</span>
+                      </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="经销商名称"
+                        width="260">
+                      <template slot-scope="scope">
+                        <span
+                            style="margin-left: 10px">{{
+                            scope.row.enterprisename ? scope.row.enterprisename : '--'
+                          }}</span>
+                      </template>
+                    </el-table-column>
+                    <el-table-column
+                        label="地址"
+                    >
+                      <template slot-scope="scope">
+                        <span style="margin-left: 10px">{{ scope.row.address ? scope.row.address : '--' }}</span>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                  <div class="container normal-panel" style="text-align:right">
+                    <el-pagination
+                        :current-page="agents.currentPage"
+                        :page-sizes="[20,50,100,]"
+                        :total="agents.total"
+                        background
+                        layout="total,sizes, prev, pager, next, jumper"
+                        small
+                        @size-change="handleSizeChangeAgent"
+                        @current-change="handleCurrentChangeAgent">
+                    </el-pagination>
+                  </div>
+                  <el-input slot="reference" v-model="form.agentname" :readonly="true" autocomplete="off"
+                            placeholder="请选择经销商" @input="selectAgents"></el-input>
+                </el-popover>
+              </el-form-item>
+            </el-col>
           </el-form>
         </el-row>
       </div>
@@ -372,7 +436,24 @@ export default {
         show:false
       },
       areaCode:'',
-      telephone:''
+      telephone:'',
+      agentsShow: false,
+      agentsParam: {
+        "id": 20230214162602,
+        "content": {
+          "hrid": '',
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ""
+          }
+        }
+      },
+      agents: {
+        agentsData: [],
+        total: 0,
+        currentPage: 0,
+      },
     }
   },
   methods:{
@@ -761,6 +842,35 @@ export default {
         this.form.contactsinfo.telephone = ''
       }
     },
+    /*所属经销商*/
+    async queryAgents() {
+      var sessionData = sessionStorage.getItem('active_account')
+      this.agentsParam.content.hrid = JSON.parse(sessionData).hrid
+      const res = await this.$api.requested(this.agentsParam)
+      this.agents.agentsData = res.data
+      this.agents.total = res.total
+      this.agents.currentPage = res.pageNumber
+    },
+    selectAgents() {
+      this.agentsParam.content.where.condition = this.form.agentname
+      this.queryAgents()
+    },
+    /*客户分页*/
+    handleSizeChangeAgent(val) {
+      // console.log(`每页 ${val} 条`);
+      this.agentsParam.content.pageSize = val
+      this.queryAgents()
+    },
+    handleCurrentChangeAgent(val) {
+      // console.log(`当前页: ${val}`);
+      this.agentsParam.content.pageNumber = val
+      this.queryAgents()
+    },
+    agentsData(val) {
+      this.form.sa_agentsid = val.sa_agentsid
+      this.form.agentname = val.enterprisename
+      this.agentsShow = false
+    },
   },
   mounted() {
 

+ 537 - 0
src/SManagement/orderclue_detail/components/customerAudit.vue

@@ -0,0 +1,537 @@
+<template>
+  <div>
+    <el-button size="mini" :type="disabled?'':'primary'" @click="onShow" :disabled="disabled" >转化客户审核</el-button>
+    <el-drawer
+        title="转化为客户"
+        :visible.sync="drawer"
+        size="600px"
+        direction="rtl"
+        :show-close="false"
+        append-to-body
+        @close="onClose">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px" label-position="right" size="mini" disabled>
+            <el-col :span="24">
+              <el-form-item label="客户名称:" prop="enterprisename_customer">
+                <el-input v-model="form.enterprisename" placeholder="请输入客户名称" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="企业简称:" prop="abbreviation">
+                <el-input v-model="form.abbreviation" placeholder="请输入企业简称" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" >
+              <el-form-item label="客户类型:" prop="type">
+                <el-input v-model="form.type" placeholder="请输入企业简称" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户等级:" prop="grade">
+                <el-input v-model="form.grade" placeholder="请输入企业简称" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户分类:" prop="customergrade">
+                <el-input v-model="form.customergrade" placeholder="请输入企业简称" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户行业:" prop="customergrade">
+                <el-select
+                    ref="sle"
+                    style="width:100%;"
+                    v-model="form.industry"
+                    multiple
+                    placeholder="请选择所属行业"
+                    size="mini"
+                >
+                  <el-option
+                      v-for="item in options.industryData"
+                      :key="item.value"
+                      :label="item.value"
+                      :value="item.value"
+                  >
+                    <span style="float: left">{{ item.value }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="联系人:"  prop="contactsinfo.name">
+                <el-input v-model="form.contactsinfo.name" placeholder="请选择所属行业" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="isPhone">
+              <el-form-item label="联系方式:" prop="contactsinfo.phonenumber">
+                <el-button-group>
+                  <!--                  <el-button type="primary" size="mini" @click="phoneChang('手机')">手机号</el-button>
+                                    <el-button type="" size="mini" @click="phoneChang('座机')">座机电话</el-button>-->
+                  <el-radio v-model="isPhone" :label="true" @change="phoneChang('手机')">手机号</el-radio>
+                  <el-radio v-model="isPhone" :label="false" @change="phoneChang('座机')">座机电话</el-radio>
+                </el-button-group>
+                <el-input v-model="form.contactsinfo.phonenumber" placeholder="请输入手机号" style="width: 100%;margin-top: 10px" @input="telephoneChange('手机')"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="!isPhone">
+              <el-form-item label="联系方式:" prop="contactsinfo.telephone">
+                <el-button-group>
+                  <!--                  <el-button type="" size="mini" @click="phoneChang('手机')">手机号</el-button>
+                                    <el-button type="primary" size="mini" @click="phoneChang('座机')">座机电话</el-button>-->
+                  <el-radio v-model="isPhone" :label="true" @change="phoneChang('手机')">手机号</el-radio>
+                  <el-radio v-model="isPhone" :label="false" @change="phoneChang('座机')">座机电话</el-radio>
+                </el-button-group>
+                <div style="width: 100%">
+                  <el-input v-model="areaCode" placeholder="请输入区号" style="width:25%;margin-top: 10px" @input="telephoneChange('座机')"></el-input>
+                  <span style="color: #999999">——</span>
+                  <el-input v-model="telephone" placeholder="请输入座机电话" style="width:68%;margin-top: 10px" @input="telephoneChange('座机')"></el-input>
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="税号:" prop="taxno">
+                <el-input v-model="form.taxno" placeholder="请输入企业税号" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="法人:" prop="contact">
+                <el-input v-model="form.contact" placeholder="请输入法人信息" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="联系电话:" prop="phonenumber">
+                <el-input v-model="form.phonenumber" placeholder="请输入联系电话" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="省市县:" prop="province">
+                <el-cascader
+                    style="width: 100%"
+                    v-model="value"
+                    :options="basicData.data().areaData"
+                    @change="cascaderChange" clearable>
+                </el-cascader>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="详细地址:" prop="address">
+                <el-input v-model="form.address" placeholder="请输入企业地址" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="上级企业:" prop="superiorenterprisename">
+                <el-input v-model="form.parent_enterprisename" placeholder="请输入企业地址" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="客户来源:" prop="source">
+                <el-input v-model="form.source" placeholder="请输入客户来源" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="归属经销商:" prop="source">
+                <el-input v-model="form.agents_enterprisename" placeholder="请选择归属经销商" style="width: 100%"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" type="danger" @click="onAudit('不通过')" class="normal-btn-width">审核不通过</el-button>
+        <el-button size="small" type="success" @click="onAudit('通过')" class="normal-btn-width" v-if="isrepeat">审核通过</el-button>
+      </div>
+    </el-drawer>
+    <duplicateCheck :data="form" ref="checkRef" @checkSuccess="checkSuccess" @onSuccess="onClose" @isDuplicate="isDuplicate" v-show="false" title="已存在重复客户,当前线索不可转化客户"></duplicateCheck>
+  </div>
+</template>
+
+<script>
+import businessMessage from '@/components/businessMessage/index'
+import duplicateCheck from "@/components/duplicatesCheck/customerChangeCheck";
+import contactsNewTemplate from '@/template/contactsNewTemplate/index'
+import businessInquiry from '@/template/businessInquiry/index'
+
+export default {
+  props: ["disabled", "data"],
+  name: "changeCustomer",
+  components: {businessMessage, duplicateCheck, contactsNewTemplate, businessInquiry},
+  data() {
+    return {
+      activeName: 'first',
+      dialogTableVisible:false,
+      drawer: false,
+      customerShow: false,
+      checkResults: '',
+      rules: {
+        phonenumber: [
+          {required: true, message: '请输入手机号码', trigger: 'change'},
+          {pattern: /^1[3-9]\d{9}$/, message: '请输入正确手机号码', trigger: 'change'}
+        ],
+        enterprisename_customer: [
+          { required: true, message: '请输入客户名称', trigger: 'blur' },
+        ],
+        roleids: [
+          { required: true, message: '请选择授权角色', trigger: 'change' }
+        ],
+        type: [
+          { required: true, message: '请选择客户类型', trigger: 'change' }
+        ],
+        contact: [
+          { required: false, message: '请输入法人', trigger: 'change,blur' },
+        ],
+        telephone: [
+          { required: false, message: '请输入联系电话', trigger: 'change,blur' },
+          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'change' }
+        ],
+        province: [
+          { required: true, message: '请选择省市县', trigger: 'change,blur' },
+        ],
+        'contactsinfo.name':[
+          { required: true, message: '请输入联系人姓名', trigger: 'change,blur' }
+        ],
+        'contactsinfo.phonenumber': [
+          { required: true, message: '请输入联系电话', trigger: 'change' },
+          { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'change' }
+        ],
+        'contactsinfo.telephone': [
+          { required: true, message: '请输入座机电话', trigger: 'change' },
+          { pattern:/^0\d{2,3}-\d{7,8}$/, message: '请输入正确座机电话',trigger: 'change' }
+        ],
+      },
+      form:{
+        "sat_orderclueid": '',
+        "enterprisename_customer":'',
+        "sa_customersid": 0, //新增是传0
+        "parentid": 0, //上级客户ID,默认或没有上级的时候传0
+        "sys_enterpriseid": 0, //合作企业档案ID,新增是传0,更新
+        "enterprisename": "", //客户名称(企业名称)
+        "type": "", //客户类型
+        "source": "", //客户来源
+        "province": "", //非必填,可选
+        "city": "", //非必填,可选
+        "county": "", //非必填,可选
+        "address": "", //非必填,可选
+        "abbreviation": "", //非必填,可选
+        "taxno": "", //税号,非必填,可选
+        "grade": '', // 客户等级(商户等级)
+        "industry": [], //非必填,可选,所属行业
+        "contact": "", //非必填,可选
+        "phonenumber": "", //非必填,可选
+        "customergrade": "", //客户等级
+        "contactsinfo": {
+          "name": "",
+          "telephone": "",
+          "phonenumber": "",
+          "sys_phonebookid":""
+        },
+      },
+      customerParam:{
+        "id": 20220920083901,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 10,
+          "where": {
+            "condition": "",
+            "type":6,
+            "sa_projectid":""
+          }
+        }
+      },
+      customer:{
+        customerData:[],
+        total:0,
+        currentPage:0,
+      },
+      value:'',
+      options:{
+        type:[],
+        parentCustomers:[],
+        gradeData:[],
+        industryData:[],
+        customerGrade:[],
+        customerClassification:[],
+        distributor:[]
+      },
+      isPhone:true,
+      enterpriseContact:{
+        param:{
+          "content": {
+            "sys_enterpriseid": '',
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+              "condition": ""
+            }
+          },
+          "id": 20221219193002,
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      myContacts:{
+        param:{
+          "id": 20221219161202,
+          "content": {
+            "pageNumber": 1,
+            "pageSize": 20,
+            "ownertable":'sa_customers',
+            "ownerid":'',
+            "where": {
+              "condition": ""
+            }
+          }
+        },
+        listData:[],
+        total:0,
+        currentPage:0,
+        show:false
+      },
+      areaCode:'',
+      telephone:'',
+      isrepeat:false
+    }
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      this.form = Object.assign({},this.form,this.data.customersnote)
+      this.value = [this.form.province,this.form.city,this.form.county]
+      this.form.contactsinfo.name = this.data.name
+      if (this.data.phonenumber.indexOf('-') != '-1'){
+        this.isPhone = false
+        this.areaCode = this.data.phonenumber.substring(0,this.data.phonenumber.indexOf('-'))
+        this.telephone = this.data.phonenumber.substring(this.areaCode.length+1)
+        this.form.contactsinfo.telephone = this.areaCode + '-' + this.telephone
+        this.form.contactsinfo.phonenumber = ''
+      }else {
+        this.isPhone = true
+        this.form.contactsinfo.phonenumber = this.data.phonenumber
+        this.form.contactsinfo.telephone = ''
+        this.areaCode = ''
+        this.telephone = ''
+      }
+      this.form.industry = JSON.parse(this.form.industry)
+      console.log(this.$refs)
+      this.$refs.checkRef.queryRule()
+    },
+    async onAudit(val){
+      const res = await this.$api.requested({
+        "id": "20240907134204",
+        "content": {
+          "sat_orderclueid":this.$route.query.id,
+          "status":val //通过 不通过
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('onCustomerAudit')
+      })
+    },
+    onClose(){
+      this.$refs['form'].resetFields();
+      this.isPhone = true
+      this.drawer = false
+      this.checkResults = ''
+      this.value = ''
+      this.areaCode = ''
+      this.telephone = ''
+      this.$emit('onChangeCustomer')
+
+    },
+    /*获取工商信息*/
+    businessSelect(val, regProvince) {
+      this.$confirm('是否以查询的工商信息更新客户信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$refs.businessRef.businessShow = false;
+        this.form.enterprisename_customer = val.companyName;
+        this.form.enterprisename = val.companyName;
+        this.form.address = val.address === "-" ? '' : val.address;
+        this.form.taxno = val.taxNum;
+        this.value = [regProvince, val.regCity, val.regArea];
+        this.form.province = regProvince;
+        this.form.city = val.regCity;
+        this.form.county = val.regArea;
+        this.form.contact = val.legalPerson;
+        this.form.telephone = val.phone
+      }).catch(() => {
+        this.$refs.businessRef.businessShow = false;
+        this.$message({
+          type: 'info',
+          message: '已取消更新'
+        });
+      })
+    },
+    /*省市县*/
+    cascaderChange(val) {
+      this.form.province = val[0]
+      if (val.length === 1)
+        return this.form = Object.assign({}, this.form, {province: val[0], city: '', county: ''});
+
+      this.form = Object.assign({}, this.form, {province: val[0], city: val[1], county: val[2]});
+
+      this.$refs.form.validateField('province')
+    },
+    async customerList(){
+      const res = await this.$api.requested(this.customerParam)
+      this.customer.customerData = res.data
+      this.customer.total = res.total
+      this.customer.currentPage = res.pageNumber
+    },
+    selectCustomer(){
+      this.customerParam.content.where.condition = this.form.superiorenterprisename
+      this.customerList()
+    },
+
+    /*客户选择信息*/
+    customerData(val){
+      this.form.parentid = val.sa_customersid
+      this.form.superiorenterprisename = val.enterprisename
+      this.customerShow = false
+    },
+    /*客户分页*/
+    handleSizeChangeCustomer(val) {
+      // console.log(`每页 ${val} 条`);
+      this.customerParam.content.pageSize = val
+      this.customerList()
+    },
+    handleCurrentChangeCustomer(val) {
+      // console.log(`当前页: ${val}`);
+      this.customerParam.content.pageNumber = val
+      this.customerList()
+    },
+    checkSuccess(val){
+      this.checkResults = val
+    },
+    phoneChang(val){
+      if (val === '座机'){
+        this.isPhone = false
+      }else {
+        this.isPhone = true
+      }
+    },
+    searchData(){
+      this.changeTab()
+    },
+    changeTab(){
+      this.enterpriseContactList()
+      this.myContactList()
+    },
+
+    /*选择企业联系人*/
+    enterpriseContactSelect(val){
+      this.form.contactsinfo.name = val.name
+      this.form.contactsinfo.oldcontactsid = val.contactsid
+      if (val.phonenumber.indexOf('-') != '-1'){
+        this.isPhone = false
+        this.areaCode = val.phonenumber.substring(0,val.phonenumber.indexOf('-'))
+        this.telephone = val.phonenumber.substring(this.areaCode.length+1)
+        this.form.contactsinfo.telephone = this.areaCode + '-' + this.telephone
+        this.form.contactsinfo.phonenumber = ''
+      }else {
+        this.isPhone = true
+        this.form.contactsinfo.phonenumber = val.phonenumber
+        this.form.contactsinfo.telephone = ''
+        this.areaCode = ''
+        this.telephone = ''
+      }
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeEnterprise(val) {
+      // console.log(`每页 ${val} 条`);
+      this.enterpriseContact.param.content.pageSize = val
+      this.enterpriseContactList()
+    },
+    handleCurrentChangeEnterprise(val) {
+      // console.log(`当前页: ${val}`);
+      this.enterpriseContact.param.content.pageNumber = val
+      this.enterpriseContactList()
+    },
+    /*我的联系人*/
+    async myContactList(){
+      this.myContacts.param.content.where.condition = this.form.contactsinfo.name
+      this.myContacts.param.content.sys_enterpriseid = 0
+      this.myContacts.param.content.ownerid = 0
+      const res = await this.$api.requested(this.myContacts.param)
+
+      this.myContacts.listData = res.data
+      this.myContacts.total = res.total
+      this.myContacts.currentPage = res.pageNumber
+    },
+    /*选择我的联系人*/
+    myContactSelect(val){
+      this.form.contactsinfo.oldcontactsid = 0
+      this.form.contactsinfo.name = val.name
+      if (val.phonenumber.indexOf('-') != '-1'){
+        this.isPhone = false
+        this.areaCode = val.phonenumber.substring(0,val.phonenumber.indexOf('-'))
+        this.telephone = val.phonenumber.substring(this.areaCode.length+1)
+        this.form.contactsinfo.telephone = this.areaCode + '-' + this.telephone
+        this.form.contactsinfo.phonenumber = ''
+      }else {
+        this.isPhone = true
+        this.form.contactsinfo.phonenumber = val.phonenumber
+        this.form.contactsinfo.telephone = ''
+      }
+      this.enterpriseContact.show = false
+    },
+    handleSizeChangeMy(val) {
+      // console.log(`每页 ${val} 条`);
+      this.myContacts.param.content.pageSize = val
+      this.myContactList()
+    },
+    handleCurrentChangeMy(val) {
+      // console.log(`当前页: ${val}`);
+      this.myContacts.param.content.pageNumber = val
+      this.myContactList()
+    },
+    telephoneChange(val){
+      if (val === '座机'){
+        this.form.contactsinfo.phonenumber = ''
+        this.form.contactsinfo.telephone = this.areaCode + '-' + this.telephone
+      }else {
+        this.form.contactsinfo.telephone = ''
+        this.areaCode = ''
+        this.telephone = ''
+      }
+
+    },
+    inputChange(val){
+      this.form.contactsinfo.name = val
+    },
+    contactData(val){
+      this.form.contactsinfo.name = val.name
+      this.form.contactsinfo.sys_phonebookid = val.sys_phonebookid
+      if (val.phonenumber.indexOf('-') != '-1'){
+        this.isPhone = false
+        this.areaCode = val.phonenumber.substring(0,val.phonenumber.indexOf('-'))
+        this.telephone = val.phonenumber.substring(this.areaCode.length+1)
+        this.form.contactsinfo.telephone = this.areaCode + '-' + this.telephone
+        this.form.contactsinfo.phonenumber = ''
+      }else {
+        this.isPhone = true
+        this.form.contactsinfo.phonenumber = val.phonenumber
+        this.form.contactsinfo.telephone = ''
+      }
+    },
+    isDuplicate(val){
+      val == '重复'?this.isrepeat = true : this.isrepeat = false
+    }
+  },
+  mounted() {
+
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-input__prefix {
+  display: flex;
+  align-items: center;
+}
+</style>

+ 644 - 0
src/SManagement/orderclue_detail/components/projectAudit.vue

@@ -0,0 +1,644 @@
+<template>
+  <div>
+    <el-button size="mini" :type="disabled?'':'primary'" @click="onShow" :disabled="disabled" >转化项目审核</el-button>
+    <el-drawer
+        title="转化项目审核"
+        :visible.sync="dialogFormVisible"
+        size="700px"
+        direction="rtl"
+        append-to-body
+        :show-close="false"
+        @close="onClose">
+      <div class="drawer__panel">
+        <el-row :gutter="2">
+          <el-form :model="form" :rules="rules" ref="form" label-width="125px" label-position="right" size="mini" disabled>
+            <el-col :span="24">
+              <el-form-item label="项目名称:" prop="projectname">
+                <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目类型:" prop="projecttype">
+                <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="mini" style="width: 100%">
+                  <el-option
+                      v-for="(item,index) in projectType"
+                      :key="index"
+                      :label="item.value"
+                      :value="item.value">
+                    <span style="float: left">{{ item.value }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="项目方阶段:" prop="squarestage">
+                <el-select v-model="form.squarestage" placeholder="请选择项目方阶段" size="mini" style="width: 100%">
+                  <el-option
+                      v-for="(item,index) in squarestages"
+                      :key="index"
+                      :label="item.value"
+                      :value="item.value">
+                    <span style="float: left">{{ item.value }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" v-if="siteid === 'HY'">
+              <el-form-item label="项目等级:" prop="grade" :rules="{ required: true, message: '请选择项目等级', trigger: 'change'}">
+                <el-select v-model="form.grade" placeholder="请选择项目等级" size="mini" style="width: 100%">
+                  <el-option
+                      v-for="item in projectGrade"
+                      :key="item.value"
+                      :label="item.value"
+                      :value="item.value">
+                    <span style="float: left">{{ item.value }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-else>
+              <el-form-item label="项目等级:" prop="grade">
+                <el-select v-model="form.grade" placeholder="请选择项目等级" size="mini" style="width: 100%">
+                  <el-option
+                      v-for="item in projectGrade"
+                      :key="item.value"
+                      :label="item.value"
+                      :value="item.value">
+                    <span style="float: left">{{ item.value }}</span>
+                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="省市县:" prop="province">
+                <el-cascader
+                    style="width:100%"
+                    v-model="value"
+                    :options="basicData.data().areaData"
+                    @change="cascaderChange" clearable>
+                </el-cascader>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" v-if="siteid === 'HY'">
+              <el-form-item label="详细地址:" prop="address" :rules="{required:true,message:'请输入详细地址',trigger:'blur'}">
+                <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-else>
+              <el-form-item label="详细地址:" prop="address">
+                <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="20" v-if="siteid === 'HY'">
+              <el-form-item label="项目规模:" prop="scale" :rules="{required: true,pattern:/^[1-9]\d*(.\d+)?$/, message: '请输入不小于0的数值', trigger: 'blur,change'}">
+                <el-input v-model="form.scale" placeholder="请填写数值" style="width: 420px" class="inline-16"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="20" v-else>
+              <el-form-item label="项目规模:" prop="scale" :rules="{required: false,pattern:/^[1-9]\d*(.\d+)?$/, message: '请输入不小于0的数值', trigger: 'blur,change'}">
+                <el-input v-model="form.scale" placeholder="请填写数值" style="width: 420px" class="inline-16"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="4">
+              <el-select v-model="form.unitname" placeholder="请选择单位" size="mini" style="width: 110px;">
+                <el-option
+                    v-for="item in unitnameList"
+                    :key="item.value"
+                    :label="item.value"
+                    :value="item.value">
+                  <!--                    <span style="float: left">{{ item.value }}</span>-->
+                  <!--                    <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>-->
+                </el-option>
+              </el-select>
+            </el-col>
+            <el-col :span="24" v-if="siteid !== 'HY'">
+              <el-form-item label="项目预算(万元):" prop="budgetary" :rules="{required: false,pattern:/^\d+(.\d{1,2})?$/, message: '请输入数字值', trigger: 'blur,change'}">
+                <el-input  v-model="form.budgetary" placeholder="项目预算"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" v-if="siteid !== 'HY'">
+              <el-form-item label="总投资额(万元):" prop="budgetary" :rules="{required: false,pattern:/^\d+(.\d{1,2})?$/, message: '请输入数字值', trigger: 'blur,change'}">
+                <el-input  v-model="form.totalinvestment" placeholder="总投资额"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-if="siteid !== 'HY'">
+              <el-form-item label="造价(万元):" prop="budgetary" :rules="{required: false,pattern:/^\d+(.\d{1,2})?$/, message: '请输入数字值', trigger: 'blur,change'}">
+                <el-input  v-model="form.costofconstruction" placeholder="造价"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="预计开工时间:" prop="begdate_due">
+                <el-date-picker
+                    style="width: 100%"
+                    v-model="form.begdate_due"
+                    type="month"
+                    placeholder="选择月"
+
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="预计完工时间:" prop="enddate_due">
+                <el-date-picker
+                    style="width: 100%"
+                    v-model="form.enddate_due"
+                    type="month"
+                    placeholder="选择月"
+
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" v-if="siteid === 'HY'">
+              <el-form-item label="预计签约时间:" prop="signdate_due" :rules="{ required: true, message: '请选择预计签约时间', trigger: 'change'}">
+                <el-date-picker
+                    style="width: 100%"
+                    v-model="form.signdate_due"
+                    type="month"
+                    placeholder="选择月"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" v-else>
+              <el-form-item label="预计签约时间:" prop="signdate_due">
+                <el-date-picker
+                    style="width: 100%"
+                    v-model="form.signdate_due"
+                    type="month"
+                    placeholder="选择月"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="预计签约金额(元):" prop="signamount_due">
+                <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额" disabled></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item label="领域:" prop="tradefield">
+                <el-select v-model="form.tradefield" placeholder="请选择领域" style="width: 100%">
+                  <el-option
+                      v-for="item in tradefieldSelect"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="品牌:" prop="sa_brandid">
+                <el-select v-model="form.brandname" placeholder="请选择品牌" style="width: 100%">
+                  <el-option
+                      v-for="item in brandSelect"
+                      :key="item.sa_brandid"
+                      :label="item.brandname"
+                      :value="item.sa_brandid">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="品牌是否由提报方植入:" prop="isfillbrangd" label-width="160px">
+                <el-radio v-model="form.isfillbrangd" label="1">是</el-radio>
+                <el-radio v-model="form.isfillbrangd" label="0">否</el-radio>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" type="danger" @click="onAudit('不通过')" class="normal-btn-width">审核不通过</el-button>
+        <el-button size="small" type="success" @click="onAudit('通过')" class="normal-btn-width" >审核通过</el-button>
+      </div>
+    </el-drawer>
+    <duplicateCheck :data="form" @checkSuccess="checkSuccess" ref="checkRef" @onSuccess="onClose" @onCheck="onCheck" v-show="false" title="已存在重复项目"></duplicateCheck>
+  </div>
+</template>
+
+<script>
+import duplicateCheck from "@/components/duplicatesCheck/projectChangeCheck";
+export default {
+  props:["disabled","data"],
+  name: "changeProject",
+  components:{duplicateCheck},
+  data(){
+    var begdateTime = (rule,value,callback) =>{
+      this.$refs.form.validateField('enddate_due')
+      if (this.form.enddate_due !== ''){
+        if (value > this.form.enddate_due){
+          callback(new Error('预计开工时间不能晚于预计完工时间'))
+        }else {
+          callback();
+        }
+      } else {
+        callback();
+      }
+    }
+    var enddateTime = (rule,value,callback) =>{
+      if (value && this.form.begdate_due !== ''){
+        if (value < this.form.begdate_due){
+          callback(new Error('预计完工时间不能早于预计开工时间'))
+        }else {
+          callback();
+        }
+      }else if (value && this.form.begdate_due === '') {
+        callback(new Error('预计完工时间不能早于预计开工时间'))
+      }else {
+        callback();
+      }
+    }
+    return {
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() < Date.now();
+        }
+      },
+      dialogFormVisible:false,
+      form:{
+        isfillbrangd:'0',
+        squarestage:"",
+        sat_orderclueid: '',
+        projectname:"",
+        projectnum:"",
+        address:"",//可选
+        grade:"",//可选
+        budgetary:"",//可选
+        remarks:"",//可选
+        projecttype:"",//可选
+        sa_projstagetempid:"",//可选
+        signdate_due:"",//可选
+        scale:"",//可选
+        signamount_due:"",//可选
+        province:"",
+        city:"",
+        county:"",
+        totalinvestment:'', //总投资额
+        costofconstruction:'', //造价
+        begdate_due:'', //预计开工时间
+        enddate_due:'',  //预计完工时间
+        sa_brandid:"",
+        tradefield:'',
+        value:[],
+        unitname:''
+      },
+      value:'',
+      projectGrade:[],
+      projectType:[],
+      brandSelect:[],
+      tradefieldSelect:[],
+      unitnameList:[],
+      squarestages:[],
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        /*projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],*/
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'change'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        tradefield:[
+          { required: true, message: '请选择领域', trigger: 'change'}
+        ],
+        sa_brandid:[
+          { required: false, message: '请选择品牌', trigger: 'change'}
+        ],
+        /*sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],*/
+        province:[
+          { required: true, message: '请选择省市县', trigger: 'change'}
+        ],
+        begdate_due:[
+          { required: false, validator: begdateTime, trigger: 'change' }
+        ],
+        enddate_due:[
+          { required: false, validator: enddateTime, trigger: 'change' }
+        ],
+      },
+      siteid:''
+    }
+  },
+  mounted() {
+    this.$store.dispatch('optiontypeselect','projectgrade').then(res =>{
+      this.projectGrade = res.data
+    })
+    this.$store.dispatch('optiontypeselect','projecttype').then(res =>{
+      this.projectType = res.data
+    })
+  },
+  methods:{
+    async onShow(){
+      this.dialogFormVisible = true
+      this.form = Object.assign({},this.form,this.data.projectnote)
+      this.value = [this.form.province,this.form.city,this.form.county]
+      this.form.totalinvestment = ''
+      this.form.costofconstruction = ''
+      this.$refs.checkRef.queryRule()
+      this.queryBrand()
+      this.queryTradefield()
+      this.queryUnitname()
+      this.siteid = JSON.parse(sessionStorage.getItem('active_account')).siteid
+      const res = await this.$store.dispatch('optiontypeselect','squarestage')
+      this.squarestages = res.data
+    },
+    /*省市县*/
+    cascaderChange (val) {
+      this.form.province = val[0]
+      /*console.log(val)
+      this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
+      console.log(this.form)*/
+
+      if (val.length === 1)
+        return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
+
+      this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
+
+    },
+    /*查重检查*/
+    onCheck(){
+      this.$refs.form.validate((valid) => {
+        if (!valid) return false
+        this.$refs.check.queryRule()
+      })
+    },
+    /*自动查重判断*/
+    duplicateCheck(){
+      this.$refs.form.validate(async (valid) => {
+        console.log(this.form)
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": 20221208184202,
+          "content": {
+            "projectname":this.form.projectname,
+            "address":this.form.address,
+            "sa_projectid":0
+          },
+        })
+        console.log(res,"查重结果")
+        if (res.data.length !== 0){
+          console.log("重复")
+        }else {
+
+        }
+        this.checkResults = res.data.length
+        console.log(this.checkResults)
+        this.onSave()
+      })
+    },
+    checkSuccess(val){
+      this.checkResults = val
+    },
+    onSave(){
+      // console.log(this.checkResults)
+      // if (this.checkResults === '' || this.checkResults === undefined){
+      //   this.duplicateCheck()
+      // }else {
+      //   if (this.checkResults !== 0){
+      //     this.$confirm('该项目疑似重复,是否确认创建项目?', '提示', {
+      //       confirmButtonText: '确定',
+      //       cancelButtonText: '取消',
+      //       type: 'warning'
+      //     }).then(() => {
+      //       this.onSubmit()
+      //     }).catch(() => {
+      //       this.$message({
+      //         type: 'info',
+      //         message: '已取消创建'
+      //       });
+      //     });
+      //   }else {
+      //     this.onSubmit()
+      //   }
+      // }
+      this.$refs.form.validate((valid) => {
+        if (!valid) return false
+        this.$refs.check.creatShow = true
+        this.$refs.check.queryRule()
+      })
+    },
+    onSubmit(){
+      console.log(this.form)
+      if (this.form.signdate_due !== ''){
+        const data = new Date(this.form.signdate_due)
+        console.log(data.getFullYear())
+        console.log(data.getMonth()+1)
+        if (data.getMonth() +1 < 10){
+          this.form.signdate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
+        }else {
+          this.form.signdate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
+        }
+      }else {
+        this.form.signdate_due = ''
+      }
+      if (this.form.begdate_due !== ''){
+        const data = new Date(this.form.begdate_due)
+        console.log(data.getFullYear())
+        console.log(data.getMonth()+1)
+        if (data.getMonth() +1 < 10){
+          this.form.begdate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
+        }else {
+          this.form.begdate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
+        }
+      }else {
+        this.form.begdate_due = ''
+      }
+      if (this.form.enddate_due !== ''){
+        const data = new Date(this.form.enddate_due)
+        console.log(data.getFullYear())
+        console.log(data.getMonth()+1)
+        if (data.getMonth() +1 < 10){
+          this.form.enddate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
+        }else {
+          this.form.enddate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
+        }
+      }else {
+        this.form.enddate_due = ''
+      }
+      this.form.sat_orderclueid = this.$route.query.id
+      console.log(this.form)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221124154902",
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          if (this.checkResults === 0){
+            this.$emit('onChangeProject')
+            this.$refs['form'].resetFields();
+            this.value = ''
+            this.form={
+              sat_orderclueid: '',
+              projectname:"",
+              projectnum:"",
+              address:"",//可选
+              grade:"",//可选
+              budgetary:"",//可选
+              remarks:"",//可选
+              projecttype:"",//可选
+              sa_projstagetempid:"",//可选
+              signdate_due:"",//可选
+              scale:"",//可选
+              signamount_due:"",//可选
+              province:"",
+              city:"",
+              county:"",
+              totalinvestment:'', //总投资额
+              costofconstruction:'', //造价
+              begdate_due:'', //预计开工时间
+              enddate_due:'',  //预计完工时间
+              sa_brandid:"",
+              tradefields:[],
+              value:[],
+            }
+            this.dialogFormVisible = false
+            this.checkResults = ''
+          }else {
+            this.setTag(res.data.sa_projectid)
+          }
+
+        })
+      })
+    },
+    async setTag(id){
+      const res = await this.$api.requested({
+        "id": 20220929090901,
+        "content": {
+          "ownertable":"sa_project",
+          "ownerid":id,
+          "datatag":[
+            "疑似重复",
+          ]
+        }
+      })
+      this.$emit('onChangeProject')
+      this.$refs['form'].resetFields();
+      this.value = ''
+      this.form={
+        sat_orderclueid: '',
+        projectname:"",
+        projectnum:"",
+        address:"",//可选
+        grade:"",//可选
+        budgetary:"",//可选
+        remarks:"",//可选
+        projecttype:"",//可选
+        sa_projstagetempid:"",//可选
+        signdate_due:"",//可选
+        scale:"",//可选
+        signamount_due:"",//可选
+        province:"",
+        city:"",
+        county:"",
+        totalinvestment:'', //总投资额
+        costofconstruction:'', //造价
+        begdate_due:'', //预计开工时间
+        enddate_due:'',  //预计完工时间
+        sa_brandid:"",
+        tradefields:[],
+        value:[],
+      }
+      this.dialogFormVisible = false
+      this.checkResults = ''
+    },
+    onClose(){
+      this.dialogFormVisible = false
+      this.$refs['form'].resetFields()
+      this.value = ''
+      this.form={
+        sat_orderclueid: '',
+        projectname:"",
+        projectnum:"",
+        address:"",//可选
+        grade:"",//可选
+        budgetary:"",//可选
+        remarks:"",//可选
+        projecttype:"",//可选
+        sa_projstagetempid:"",//可选
+        signdate_due:"",//可选
+        scale:"",//可选
+        signamount_due:"",//可选
+        province:"",
+        city:"",
+        county:"",
+        totalinvestment:'', //总投资额
+        costofconstruction:'', //造价
+        begdate_due:'', //预计开工时间
+        enddate_due:'',  //预计完工时间
+        sa_brandid:"",
+        tradefields:[],
+        value:[],
+      }
+      this.$emit('onChangeProject')
+
+    },
+    /*获取品牌*/
+    async queryBrand(){
+      const res = await this.$api.requested({
+        content: {
+          isExport: 0,
+          pageNumber: 1,
+          pageSize: 20,
+          where: {
+            condition: "",
+            tablefilter: {}
+          }
+        },
+        id: 20220922085103
+      })
+      this.brandSelect = res.data
+    },
+    /*获取领域*/
+    queryTradefield(){
+      this.$store.dispatch('optiontypeselect','tradefield').then(res=>{
+        this.tradefieldSelect = res.data
+      })
+    },
+    /*获取单位*/
+    queryUnitname(){
+      this.$store.dispatch('optiontypeselect','scaleunitname').then(res=>{
+        this.form.unitname = res.data[0].value
+        this.unitnameList = res.data
+      })
+    },
+    async onAudit(val){
+      const res = await this.$api.requested({
+        "id": "20240907162304",
+        "content": {
+          "sat_orderclueid":this.$route.query.id,
+          "status":val //通过 不通过
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('onProjectAudit')
+      })
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 12 - 5
src/SManagement/orderclue_detail/index.vue

@@ -26,8 +26,10 @@
           :teamList="teamList()"
           v-if="userInfo.isAuth == 1 ? mainData.status == '待跟进' || mainData.status == '跟进中' : ''"></move> -->
 
-        <changeCustomer v-if="mainData.iscustomer == 0 && tool.checkAuth($route.name,'changeCutomer')" :data="mainData" :disabled="!isHandle" class="inline-16" @onChangeCustomer="onChangeCustomer"></changeCustomer>
-        <changeProject v-if="mainData.isproject == 0 && tool.checkAuth($route.name,'changeProject')" :data="mainData" :disabled="!isHandle" class="inline-16" @onChangeProject="queryMainData($route.query.id)"/>
+        <changeCustomer v-if="mainData.iscustomer == 0 && tool.checkAuth($route.name,'changeCutomer') && mainData.istransformingtocustomer == 0" :data="mainData" :disabled="!isHandle" class="inline-16" @onChangeCustomer="onChangeCustomer"></changeCustomer>
+        <changeProject v-if="mainData.isproject == 0 && tool.checkAuth($route.name,'changeProject') && mainData.istransformingtoproject == 0" :data="mainData" :disabled="!isHandle" class="inline-16" @onChangeProject="queryMainData($route.query.id)"/>
+        <customerAudit v-if="mainData.iscustomer == 0 && tool.checkAuth($route.name,'customerAudit') && mainData.istransformingtocustomer == 1 && siteid == 'HY'" :disabled="mainData.iscustomer == 1" class="inline-16" :data="mainData" @onCustomerAudit="queryMainData('审核')"></customerAudit>
+        <projectAudit v-if="mainData.isproject == 0 && tool.checkAuth($route.name,'projectAudit') && mainData.istransformingtoproject == 1 && siteid == 'HY'" :disabled="mainData.isproject == 1" class="inline-16" :data="mainData" @onProjectAudit="queryMainData('审核')"></projectAudit>
         <el-button :type="!isHandle || mainData.status === '已无效'?'':'primary'" v-if="tool.checkAuth($route.name,'goBack') && mainData.status != '已转化' && mainData.isprivate !== 1" :disabled="!isHandle || mainData.status === '已无效'" class="inline-16" size="mini" @click="goBack">退 回</el-button>
         <noNull v-if="tool.checkAuth($route.name,'noNull') && mainData.status != '已转化' " class="inline-16" :data="mainData" :disabled="!isHandle" @onSuccess="$store.dispatch('changeDetailDrawer',false);$router.replace('/orderclue')" :id="mainData.sat_orderclueid"/>
         <Del v-if="tool.checkAuth($route.name,'toVoid') " class="inline-16" :data="mainData" :disabled="!isHandle" :idName="20221123193702" @onSuccess="$store.dispatch('changeDetailDrawer',false);$router.replace('/orderclue')" :id="mainData.sat_orderclueid" idKey="sat_orderclueids"/>
@@ -59,6 +61,8 @@ import changeCustomer from './components/changeCustomer'
 import sourceClues from '@/HManagement/clueManage/clue_public/modules/sourceClues'
 import changeSite from '@/HManagement/clueManage/clue_private/modules/changeToSite.vue'
 import saveContact from './components/saveContact'
+import customerAudit from './components/customerAudit'
+import projectAudit from './components/projectAudit'
 export default {
   name: "detail",
   inject:['teamList'],
@@ -68,6 +72,7 @@ export default {
       mainAreaData:{},
       detailInfo:{},
       userInfo:JSON.parse(window.sessionStorage.getItem('userInfo')),
+      siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
       isHandle:''
     }
   },
@@ -83,7 +88,9 @@ export default {
     edit,
     sourceClues,
     changeSite,
-    saveContact
+    saveContact,
+    customerAudit,
+    projectAudit
   },
   watch: {
    async mainData(val) {
@@ -147,7 +154,7 @@ export default {
     detailCreate (param) {
       param.content.isAll = 0
     },
-    async queryMainData(id) {
+    async queryMainData(val) {
       const res = await this.$api.requested({
         "classname": "saletool.orderclue.web.orderclue",
         "method": "selectDetail",
@@ -157,7 +164,7 @@ export default {
       })
       this.mainData = res.data
       this.$refs.details.param.content.type = this.$route.query.tabIndex
-
+      if (val == '审核') return this.$refs.details.$refs.tag.queryTag()
       this.changeDataStructure()
     },
     changeDataStructure() {

+ 8 - 6
src/components/duplicatesCheck/customerChangeCheck.vue

@@ -4,7 +4,7 @@
     <el-dialog title="重复客户" :visible.sync="dialogTableVisible" append-to-body width="1000px">
       <div slot="title" class="dialog-title">
         <span class="title-text">重复客户</span>
-        <p style="font-size: 14px;color: red">已存在重复客户不可继续创建</p>
+        <p style="font-size: 14px;color: red">{{title?title:'已存在重复客户不可继续创建'}}</p>
       </div>
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -20,9 +20,9 @@
               </el-tag>
             </div>
           </div>
-          <div v-else-if="scope.column.columnname === 'leader'">
-            <span>{{scope.column.data.leader?scope.column.data.leader.length !== 0 ? scope.column.data.leader[0].name:'--':'--'}}</span>
-          </div>
+<!--          <div v-else-if="scope.column.columnname === 'leader'">
+            <span>{{scope.column.data.leader?scope.column.data.leader.length !== 0 ? scope.column.data.leader[0].name:'&#45;&#45;':'&#45;&#45;'}}</span>
+          </div>-->
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
         </template>
       </tableLayout>
@@ -48,7 +48,7 @@
 <script>
 export default {
   name: "customerCheck",
-  props:["data"],
+  props:["data",'title'],
   data(){
     return {
       dialogTableVisible:false,
@@ -76,7 +76,7 @@ export default {
   },
   methods:{
     async listData(){
-      this.param.content.sa_customersid = this.data.sa_customersid || 0
+      this.param.content.sa_customersid = 0
       this.fields1.forEach(item=>{
         this.param.content[item] = this.data[item] || ""
       })
@@ -95,6 +95,7 @@ export default {
           this.total = res.total
           this.currentPage = res.pageNumber
           this.dialogTableVisible = true
+          this.$emit('isDuplicate','重复')
         }else {
           if (this.creatShow){
             this.onSubmit()
@@ -103,6 +104,7 @@ export default {
               message: '无重复数据',
               type: 'success'
             });
+            this.$emit('isDuplicate','无重复数据')
           }
         }
       }

+ 6 - 4
src/components/duplicatesCheck/projectChangeCheck.vue

@@ -1,11 +1,11 @@
 <template>
   <div>
     <el-button size="small" type="primary" @click="isCheck" class="inline-16 normal-btn-width">查 重</el-button>
-    <el-dialog title="重复项目" :visible.sync="dialogTableVisible" append-to-body width="1000px">
+    <el-dialog title="重复项目" :visible.sync="dialogTableVisible" append-to-body width="40%" style="float: left">
       <div slot="title" class="dialog-title">
         <span class="title-text">重复项目</span>
         <p v-if="buttonTitle === '确定保存'" style="font-size: 14px;color: red">已存在重复项目,是否确认继续保存</p>
-        <p v-else style="font-size: 14px;color: red">已存在重复项目,是否确认继续创建</p>
+        <p v-else style="font-size: 14px;color: red">{{title?title:'已存在重复项目,是否确认继续创建'}}</p>
       </div>
       <tableLayout :layout="tablecols"   :data="list" :opwidth="200" height="calc(100vh - 550px)" :width="true" :custom="true">
         <template v-slot:customcol="scope">
@@ -49,7 +49,7 @@
 <script>
 export default {
   name: "customerCheck",
-  props:["data"],
+  props:["data","title"],
   data(){
     return {
       dialogTableVisible:false,
@@ -76,7 +76,7 @@ export default {
   },
   methods:{
     async listData(){
-      this.param.content.sa_projectid = this.data.sa_projectid || 0
+      this.param.content.sa_projectid =0
       this.fields1.forEach(item=>{
         this.param.content[item] = this.data[item] || ""
       })
@@ -95,6 +95,7 @@ export default {
           this.total = res.total
           this.currentPage = res.pageNumber
           this.dialogTableVisible = true
+          this.$emit('isDuplicate','重复')
         }else {
           if (this.creatShow){
             this.onSubmit()
@@ -103,6 +104,7 @@ export default {
               message: '无重复数据',
               type: 'success'
             });
+            this.$emit('isDuplicate','无重复数据')
           }
         }
       }