浏览代码

代码上传

zhangqiOMG 2 年之前
父节点
当前提交
ea2f0889a7

+ 6 - 27
src/HDrpManagement/contractManage/components/toolList/addTool.vue

@@ -8,27 +8,7 @@
           <el-input size="small" style="width:200px;margin-bottom:10px" v-model="params.content.where.condition" placeholder="输入搜索内容" @clear="getProductList(params.content.pageNumber = 1)" @keyup.native.enter="getProductList(params.content.pageNumber = 1)" clearable></el-input>
           <el-button type="primary" size="small" :disabled="selectProductLength == 0" @click="onSumit">批 量 添 加</el-button>
         </div>
-        <Table @selectArr="selectArr" ref="table" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData">
-          <template v-slot:customcol="scope">
-            <div v-if="scope.column.columnname == 'attinfos'">
-              <previewImage 
-                v-if="scope.column.data.attinfos[0]" 
-                style="width:38px;height:38px;margin:0px" 
-                class="image" 
-                :image="scope.column.data.attinfos[0]" 
-                :list="scope.column.data.attinfos" 
-                :deletebtn="false"
-              ></previewImage>
-            </div>
-            <div v-else-if="scope.column.columnname == 'brand'">
-              {{scope.column.data[scope.column.columnname][0] ? scope.column.data[scope.column.columnname][0].brandname : '--'}}
-            </div>
-            <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
-            <span v-if="!scope.column.data[scope.column.columnname] && scope.column.data[scope.column.columnname] !== 0 && scope.column.columnname != 'operation'">--</span>
-          </template>
-          <template v-slot:opreation="scope">
-            <el-button type="text" size="mini" @click="addProduct(scope.data)">添 加</el-button>
-          </template>
+        <Table  ref="table" v-model="itemno" :layout="tablecols" :data="productList" :custom="true" height="500px"  @upDateData="upDateData" @selection="selectArr" @onSelect="addProduct">
         </Table>
         <div style="display:flex;justify-content:space-between;align-items:center;margin-top:10px">
           <span>已添加产品数:{{addProductLength}}</span>
@@ -50,7 +30,7 @@
 </template>
 
 <script>
-import Table from '@/HDrpManagement/ProductGroupMag/modules/table'
+import Table from '@/components/productTable/index'
 import previewImage from '@/components/previewImage/index'
 export default {
   props:['disabled'],
@@ -138,8 +118,8 @@ export default {
       })
     },
     async onSumit () {
-      console.log(this.$refs.table.allArr);
-      let item = this.$refs.table.allArr.map(item => {
+      console.log(this.$refs.table.tableSelectData);
+      let item = this.$refs.table.tableSelectData.map(item => {
         return {
           "itemid": item.itemid,
           "price": '0',
@@ -154,9 +134,8 @@ export default {
         },
       })
       this.tool.showMessage(res,() => {
-        this.drawer = false
-        this.$refs.table.allArr = []
-
+        this.$refs.table.tableSelectData = []
+        this.getProductList()
         this.$emit('onSuccess')
       })
     },

+ 12 - 1
src/HDrpManagement/projectChange/modules/modules/contract/index.vue

@@ -17,7 +17,13 @@
     <div style="margin-top: 15px">
       <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  fixedName="operation" :height="tableHieght">
         <template v-slot:customcol="scope">
-          <div v-if="scope.column.columnname === 'operation'">
+          <div v-if="scope.column.columnname === 'status'">
+            <span style="color:#3874f6" v-if="scope.column.data[[scope.column.columnname]] == '新建'">{{scope.column.data[[scope.column.columnname]]}}</span>
+            <span style="color:#52c41a" v-else-if="scope.column.data[[scope.column.columnname]] == '已提交'">{{scope.column.data[[scope.column.columnname]]}}</span>
+            <span style="color:#333333" v-else-if="scope.column.data[[scope.column.columnname]] == '审核'">{{scope.column.data[[scope.column.columnname]]}}</span>
+            <span style="color:#000000" v-else>{{scope.column.data[[scope.column.columnname]]}}</span>
+          </div>
+          <div v-else-if="scope.column.columnname === 'operation'">
             <span>{{scope.column.data[scope.column.columnname]}}</span>
           </div>
           <p v-else>{{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:'--'}}</p>
@@ -115,6 +121,11 @@ export default {
       JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
         item1.modules.forEach(item2 => {
           if(item2.systemmodulename == "合同管理") {
+            let route = this.$route
+            if (route.path !== '/contractDetail') {
+              this.oldRoute = {path:route.path,query:route.query}
+              this.$store.dispatch('setHistoryRouter',this.oldRoute)
+            }
             sessionStorage.setItem('active_modules',JSON.stringify(item2))
             this.$router.push({path:'/contractDetail',query:{id:data.sa_contractid,type:type}})
             return

+ 5 - 0
src/HDrpManagement/projectChange/modules/modules/quotation/index.vue

@@ -102,6 +102,11 @@ export default {
   methods:{
     detailGo(row){
       console.log(row)
+      let route = this.$route
+      if (route.path !== '/quotedPriceDetail') {
+        this.oldRoute = {path:route.path,query:route.query}
+        this.$store.dispatch('setHistoryRouter',this.oldRoute)
+      }
       this.$router.push({
         path:'/quotedPriceDetail',
         query:{

+ 227 - 0
src/HManagement/ecycle/contract/index.vue

@@ -0,0 +1,227 @@
+<template>
+  <div>
+    <basicLayout
+        ref="basicLayout"
+        tableName="contractTable"
+        idName="sa_contractid"
+        :apiId="{query:20221121201502,del:''}"
+        :autoQuery="false"
+    >
+      <template #custom>
+        <div class="mt-10">
+          <p class="search__label">应用:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="application"
+              placeholder="请选择范围"
+              @change="applicationChange"
+          >
+            <el-option
+                v-for="item in applicationList"
+                :key="item.index"
+                :label="item.label"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <p class="search__label">合同类型:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="type"
+              placeholder="请选择合同类型"
+              clearable
+              @change="$refs.basicLayout.param.content.pageNumber=1;$refs.basicLayout.param.content.where.type=type;$refs.basicLayout.listData()"
+          >
+            <el-option
+                v-for="item in typeList"
+                :key="item.value"
+                :label="item.remarks"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <p class="search__label">合同状态:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="status"
+              placeholder="请选择合同状态"
+              clearable
+              @change="$refs.basicLayout.param.content.pageNumber=1;$refs.basicLayout.param.content.where.status=status;$refs.basicLayout.listData()"
+          >
+            <el-option label="新建" value="新建" ></el-option>
+            <el-option label="审核" value="审核" ></el-option>
+            <el-option label="已提交" value="已提交" ></el-option>
+            <el-option label="已终止" value="已终止" ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label" >创建日期:</label>
+          <el-date-picker
+              style="margin-right: 24px !important;"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="dateSelect"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              clearable>
+          </el-date-picker>
+        </div>
+      </template>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname == 'status'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '新建'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已提交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '审核'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#000000" v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'type'">
+          <span v-if="scope.data.column.data[[scope.data.column.columnname]] == '框架'">经销商合作协议</span>
+          <span v-else-if="scope.data.column.data.typemx == '经销'">经销项目协议</span>
+          <span v-else-if="scope.data.column.data.typemx == '直销'">直销项目协议</span>
+          <span v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '工具借用'">工具使用协议</span>
+          <span v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '居间'">居间协议</span>
+        </div>
+        <div  v-else-if="scope.data.column.columnname == 'discountrate'">
+          <!--          <div v-if="scope.data.column.data"></div>-->
+          <!--          {{scope.data.column.data[[scope.data.column.columnname]] <1 ?(scope.data.column.data[[scope.data.column.columnname]] * 100).toFixed(2):100}}-->
+          <div v-if="scope.data.column.data.type === '框架'">
+            {{scope.data.column.data.discountrate<1?Math.round((scope.data.column.data.discountrate * 100)*100)/100:100}}
+          </div>
+          <div v-else-if="scope.data.column.data.type === '居间'">
+            <span v-if="scope.data.column.data.calculatemodel === 1">
+              {{scope.data.column.data.orderratio<1?Math.round((scope.data.column.data.orderratio * 100)*100)/100:100}}
+            </span>
+            <span v-if="scope.data.column.data.calculatemodel === 2">
+              {{scope.data.column.data.productdiscount<1?Math.round((scope.data.column.data.productdiscount * 100)*100)/100:100}}
+            </span>
+          </div>
+          <div v-else>--</div>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+        <span v-if="!scope.data.column.data[[scope.data.column.columnname]] && scope.data.column.data[[scope.data.column.columnname]] !== 0">--</span>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <delData class="inline-16" :ownerid="scope.data.data.sa_contractid" :sys_object="application" @delSuccess="queryData"></delData>
+        <recovery class="inline-16" :ownerid="scope.data.data.sa_contractid" :sys_object="application" @recoverySuccess="queryData"></recovery>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import recovery from "@/HManagement/ecycle/modules/recovery";
+import delData from "@/HManagement/ecycle/modules/delData";
+
+export default {
+  name: "index",
+  data () {
+    return {
+      application:'3',
+      applicationList:[
+        {
+          label: '销售线索',
+          value: "1",
+        },
+        {
+          label: '客户',
+          value: "2",
+        },
+        {
+          label: '合同',
+          value: "3",
+        },
+        {
+          label: '项目商机',
+          value: "4",
+        },
+        {
+          label: '报价单',
+          value: "5",
+        }
+      ],
+      dateSelect:'',
+      typeList:[],
+      area:'1',
+      tabIndex:"1",
+      type:'',
+      condition:'',
+      status:'',
+      selectParam: {
+        status: "",
+        type: "",
+        begindate:"",
+        enddate:""
+      },
+    }
+  },
+  components:{recovery,delData},
+  methods:{
+    queryData(){
+      this.$refs.basicLayout.param.content.isAll = 0
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.deleted = 1
+      this.$refs.basicLayout.listData()
+    },
+    applicationChange(val){
+      console.log(val)
+      this.$emit("changeApplication",val)
+    },
+    async getSystemList () {
+      /*const res = await this.$store.dispatch('optiontypeselect','dataarea')
+      this.areaList = res.data
+      console.log(this.areaList);*/
+
+      const res2 = await this.$store.dispatch('optiontypeselect','contracttype')
+      this.typeList = res2.data
+    },
+    async getAgentList () {
+      let res = await this.$api.requested({
+        "classname": "webmanage.sale.agents.agents",
+        "method": "query_agentList",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "agenttype":"经销商",
+          "where": {
+            "condition": ""
+          }
+        }
+      })
+      console.log(res.data);
+
+    },
+    selectChange () {
+      if (this.dateSelect !== '' && this.dateSelect !== null){
+        this.selectParam.begindate = this.dateSelect[0]
+        this.selectParam.enddate = this.dateSelect[1]
+      }else {
+        this.selectParam.begindate = ''
+        this.selectParam.enddate = ''
+      }
+      this.$refs.basicLayout.param.content.where = this.selectParam
+      this.$refs.basicLayout.listData()
+    },
+  },
+  mounted() {
+    this.queryData()
+  },
+  created () {
+    this.getSystemList()
+    this.getAgentList()
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 287 - 0
src/HManagement/ecycle/customer/index.vue

@@ -0,0 +1,287 @@
+<template>
+  <div>
+    <basicLayout
+        ref="basicLayout"
+        tableName="customerTable"
+        idName="sa_customersid"
+        :apiId="{query:20221012164402,del:''}"
+        :autoQuery="false"
+    >
+      <template #custom>
+        <div class="mt-10">
+          <p class="search__label">应用:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="application"
+              placeholder="请选择范围"
+              @change="applicationChange"
+          >
+            <el-option
+                v-for="item in applicationList"
+                :key="item.index"
+                :label="item.label"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div  class="mt-10">
+          <label class="search__label">客户类型:</label>
+          <el-select class="inline-16" v-model="selectParam.type" size="small" placeholder="请选择" @change="selectChange" clearable>
+            <el-option
+                v-for="item in option.typeData"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div  class="mt-10">
+          <label class="search__label">客户等级:</label>
+          <el-select  class="inline-16" v-model="selectParam.customergrade" size="small" placeholder="请选择" @change="selectChange" clearable>
+            <el-option
+                v-for="item in option.gradeData"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div  class="mt-10">
+          <label class="search__label">所属行业:</label>
+          <el-select  class="inline-16" v-model="selectParam.industry" size="small" placeholder="请选择" @change="selectChange" clearable>
+            <el-option
+                v-for="item in option.industryData"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div  class="mt-10">
+          <label class="search__label">合作状态:</label>
+          <el-select  class="inline-16" v-model="selectParam.status" size="small" placeholder="请选择" @change="selectChange" clearable>
+            <el-option
+                v-for="item in option.status"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div  class="mt-10">
+          <label class="search__label" >创建时间:</label>
+          <el-date-picker
+              style="margin-right: 24px !important;"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="dateSelect"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              clearable>
+          </el-date-picker>
+        </div>
+      </template>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'isleader'">
+          <span v-if="scope.data.column.data['leader'].length !== 0">已分配</span>
+          <span v-else>未分配</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'tag'">
+          <div v-for="item in scope.data.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag  color="#FA8C16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+          <div v-for="item in scope.data.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag color="#FAAB16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'tradingstatus'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '未成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '多次成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'status'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '潜在'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '合作中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已终止'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'contact'">
+          <span>{{scope.data.column.data['leader'][0]?scope.data.column.data['leader'][0].name:'--'}}</span>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <delData class="inline-16" :ownerid="scope.data.data.sa_customersid" :sys_object="application" @delSuccess="queryData"></delData>
+        <recovery class="inline-16" :ownerid="scope.data.data.sa_customersid" :sys_object="application" @recoverySuccess="queryData"></recovery>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import recovery from "@/HManagement/ecycle/modules/recovery";
+import delData from "@/HManagement/ecycle/modules/delData";
+
+export default {
+  name: "index",
+  data () {
+    return {
+      application:'2',
+      applicationList:[
+        {
+          label: '销售线索',
+          value: "1",
+        },
+        {
+          label: '客户',
+          value: "2",
+        },
+        {
+          label: '合同',
+          value: "3",
+        },
+        {
+          label: '项目商机',
+          value: "4",
+        },
+        {
+          label: '报价单',
+          value: "5",
+        }
+      ],
+      option:{
+        typeData:[],
+        gradeData:[],
+        industryData:[],
+        status:[
+          {
+            value:'潜在'
+          },
+          {
+            value:'合作中'
+          },
+          {
+            value:'已终止'
+          }
+        ]
+      },
+      selectParam: {
+        status:'',
+        type:'',
+        customergrade:'',
+        industry:'',
+        startdate:'',
+        enddate:'',
+
+      },
+      dateSelect:''
+    }
+  },
+  components:{recovery,delData},
+  methods:{
+    queryData(){
+      this.$refs.basicLayout.param.content.isAll = 0
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.deleted = 1
+      this.$refs.basicLayout.listData()
+    },
+    applicationChange(val){
+      console.log(val)
+      this.$emit("changeApplication",val)
+    },
+    /*客户类型列表*/
+    async typeList(){
+      const res = await this.$api.requested({
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": "customertypemx",
+          "parameter": {
+            "siteid": "YOSTEST2"
+          }
+        }
+      })
+      this.option.typeData = res.data
+      console.log("客户类型",res.data)
+      console.log(this.option.typeData)
+
+    },
+    /*客户等级*/
+    async gradeList(){
+      const res = await this.$api.requested({
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": "customergrade",
+          "parameter": {
+            "siteid": "YOSTEST2"
+          }
+        }
+      })
+      console.log("客户等级",res.data)
+      /*for (var i=0;i<res.data.length; i++){
+        if (res.data[i].remarks !== ''){
+          this.options.gradeData[i] = res.data[i].value + "——" + res.data[i].remarks
+        }else{
+          this.options.gradeData[i] = res.data[i].value
+        }
+      }*/
+      this.option.gradeData = res.data
+      console.log("处理后客户等级",this.option.gradeData)
+    },
+    /*行业列表*/
+    async industryList(){
+      const res = await this.$api.requested({
+        "classname": "sysmanage.develop.optiontype.optiontype",
+        "method": "optiontypeselect",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "typename": "industry",
+          "parameter": {
+            "siteid": "YOSTEST2"
+          }
+        }
+      })
+      this.option.industryData = res.data
+    },
+    selectChange(){
+      this.tabIndex = this.value
+      if (this.dateSelect !== '' && this.dateSelect !== null){
+        this.selectParam.startdate = this.dateSelect[0]
+        this.selectParam.enddate = this.dateSelect[1]
+      }else {
+        this.selectParam.startdate = ''
+        this.selectParam.enddate = ''
+      }
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.where = Object.assign({},this.$refs.basicLayout.param.content.where,this.selectParam)
+      this.$refs.basicLayout.param.content.phonenumber = 1
+      this.$refs['basicLayout'].listData()
+    },
+  },
+  mounted() {
+    this.queryData()
+    this.typeList()
+    this.gradeList()
+    this.industryList()
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 56 - 2
src/HManagement/ecycle/index.vue

@@ -1,14 +1,68 @@
 <template>
   <div>
-<!--    <saleClue></saleClue>-->
+    <saleClue v-if="salClueShow" @changeApplication="onChange"></saleClue>
+    <projectChange v-if="projectChangeShow" @changeApplication="onChange"></projectChange>
+    <quotedPrice v-if="quotedPriceShow" @changeApplication="onChange"></quotedPrice>
+    <contract v-if="contractShow" @changeApplication="onChange"></contract>
+    <customer v-if="customerShow" @changeApplication="onChange"></customer>
   </div>
 </template>
 
 <script>
 import saleClue from '@/HManagement/ecycle/saleClue/index'
+import projectChange from './projectChange/index'
+import quotedPrice from './quotedPrice/index'
+import contract from './contract/index'
+import customer from './customer/index'
 export default {
   name: "index",
-  components:{saleClue}
+  components:{saleClue,projectChange,quotedPrice,contract,customer},
+  data(){
+    return {
+      salClueShow:true,
+      projectChangeShow:false,
+      quotedPriceShow:false,
+      contractShow:false,
+      customerShow:false
+    }
+  },
+  methods:{
+    onChange(val){
+      console.log(this.projectChangeShow,this.salClueShow)
+      if (val === '1'){
+        this.salClueShow = true
+        this.projectChangeShow = false
+        this.quotedPriceShow = false
+        this.contractShow = false
+        this.customerShow = false
+      }else if (val === '2') {
+        this.customerShow = true
+        this.salClueShow = false
+        this.projectChangeShow = false
+        this.quotedPriceShow = false
+        this.contractShow = false
+      }else if (val === '3'){
+        this.contractShow = true
+        this.quotedPriceShow = false
+        this.salClueShow = false
+        this.projectChangeShow = false
+        this.customerShow = false
+      }else if (val === '4'){
+        this.projectChangeShow = true
+        this.quotedPriceShow = false
+        this.salClueShow = false
+        this.contractShow = false
+        this.customerShow = false
+      }else if (val === '5'){
+        this.quotedPriceShow = true
+        this.customerShow = false
+        this.contractShow = false
+        this.salClueShow = false
+        this.projectChangeShow = false
+      }
+      console.log(this.projectChangeShow,this.salClueShow)
+    }
+  }
 }
 </script>
 

+ 45 - 0
src/HManagement/ecycle/modules/delData.vue

@@ -0,0 +1,45 @@
+<template>
+  <div>
+    <el-button type="text" size="mini" @click="onshow" >删 除</el-button>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "saleClueDel",
+  props:["sys_object","ownerid"],
+  methods:{
+    onshow() {
+      this.$confirm('是否确认彻底删除数据,一旦删除,无法恢复?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        closeOnClickModal:false,
+        type: 'warning'
+      }).then(() => {
+        this.onDel()
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    },
+    async onDel(){
+      const res = await this.$api.requested({
+        "id": 20230103131204,
+        "content": {
+          "sys_object": this.sys_object,//1-线索,2-客户,3-合同,4-项目商机,5-报价单
+          "ownerids": [this.ownerid]
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit("delSuccess")
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 45 - 0
src/HManagement/ecycle/modules/recovery.vue

@@ -0,0 +1,45 @@
+<template>
+  <div>
+    <el-button type="text" size="mini" @click="onshow">恢 复</el-button>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "recovery",
+  props:["sys_object","ownerid"],
+  methods:{
+    onshow() {
+      this.$confirm('数据恢复至原账号原位置,是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        closeOnClickModal:false,
+        type: 'warning'
+      }).then(() => {
+        this.onRecovery()
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+    },
+    async onRecovery(){
+      const res = await this.$api.requested({
+        "id": 20230103131104,
+        "content": {
+          "sys_object": this.sys_object,//1-线索,2-客户,3-合同,4-项目商机,5-报价单
+          "ownerids": [this.ownerid]
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit("recoverySuccess")
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 270 - 0
src/HManagement/ecycle/projectChange/index.vue

@@ -0,0 +1,270 @@
+
+<template>
+  <div>
+    <basicLayout
+        ref="basicLayout"
+        tableName="projectChangeTable"
+        idName="sa_projectid"
+        :apiId="{query:20221020143502,del:''}"
+        :autoQuery="false"
+    >
+      <template #custom>
+        <div class="mt-10">
+          <p class="search__label">应用:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="application"
+              placeholder="请选择范围"
+              @change="applicationChange"
+          >
+            <el-option
+                v-for="item in applicationList"
+                :key="item.index"
+                :label="item.label"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label">项目类型:</label>
+          <el-select class="inline-24" v-model="selectParam.projecttype" placeholder="请选择项目类型" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in projectType"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label">项目等级:</label>
+          <el-select class="inline-24" v-model="selectParam.grade" placeholder="请选择项目等级" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in projectLead"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label">当前项目阶段:</label>
+          <el-select class="inline-24" v-model="selectParam.stagename" placeholder="请选择项目阶段" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in option.stageList"
+                :key="item.stagename"
+                :label="item.stagename"
+                :value="item.stagename">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label">项目状态:</label>
+          <el-select class="inline-24" v-model="selectParam.status" placeholder="请选择项目状态" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in option.statusTab"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label" >创建日期:</label>
+          <el-date-picker
+              style="margin-right: 24px !important;"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="dateSelect"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              clearable>
+          </el-date-picker>
+        </div>
+      </template>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'status'">
+          <span style="color:#52c41a" v-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已失败'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'tag'">
+          <div v-for="item in scope.data.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag  color="#FA8C16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+          <div v-for="item in scope.data.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag color="#FAAB16" size="mini" type="warning" effect="dark">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'name'">
+          {{scope.data.column.data.leader[0] && scope.data.column.data.leader[0].name}}
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <delData class="inline-16" :ownerid="scope.data.data.sa_projectid" :sys_object="application" @delSuccess="queryData"></delData>
+        <recovery class="inline-16" :ownerid="scope.data.data.sa_projectid" :sys_object="application" @recoverySuccess="queryData"></recovery>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+/**
+ * @basicLayout 提供this.$ref['basicLayout'].listData()方法查询列表信息
+ * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
+ * @param {string} tableName 开发端配置的表格名称
+ * @param {String} idName 数据主id名称
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
+ * @param {Array} options:{label:描述,value:值}
+ */
+import recovery from "@/HManagement/ecycle/modules/recovery"
+import delData from "@/HManagement/ecycle/modules/delData"
+export default {
+  data () {
+    return {
+      application:'4',
+      applicationList:[
+        {
+          label: '销售线索',
+          value: "1",
+        },
+        {
+          label: '客户',
+          value: "2",
+        },
+        {
+          label: '合同',
+          value: "3",
+        },
+        {
+          label: '项目商机',
+          value: "4",
+        },
+        {
+          label: '报价单',
+          value: "5",
+        }
+      ],
+      projectType:'',
+      projectLead:'',
+      dateSelect:'',
+      option:{
+        statusTab:[
+          {
+            value:"跟进中",
+            label:"跟进中"
+          },
+          {
+            value:"已成交",
+            label:"已成交"
+          },
+          {
+            value:"已失败",
+            label:"已失败"
+          }
+        ],
+        stageList:[
+
+        ]
+      },
+      selectParam: {
+        status:'',
+        projecttype:'',
+        grade:'',
+        startdate:'',
+        enddate:'',
+        stagename:''
+      },
+    }
+  },
+  components:{recovery,delData},
+  methods:{
+    queryData(){
+      this.$refs.basicLayout.param.content.isAll = 0
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.deleted = 1
+      this.$refs.basicLayout.listData()
+    },
+    applicationChange(val){
+      console.log(val)
+      this.$emit("changeApplication",val)
+    },
+    /** 获取公司数据 */
+    async getEnterprise () {
+      let res = await this.$api.requested({
+        "id": 20221021095802,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 99999,
+          "where": {
+            "condition": ""
+          }
+        },
+      })
+      this.enterpriseList = res.data
+    },
+    async getSysetms () {
+      /* 获取项目类型 */
+      let res = await this.$store.dispatch('optiontypeselect','projecttype')
+      this.projectType = res.data
+      /* 获取项目等级 */
+      let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
+      this.projectLead = res2.data
+      console.log(this.projectLead);
+
+    },
+    /*获取阶段*/
+    async stageData(){
+      const res = await this.$api.requested({
+        "id": 20221128143604,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 99,
+          "where": {
+            "condition": "",
+            "allprojecttype":"",
+            "projecttype":""
+          }
+        }
+      })
+      this.option.stageList = res.data
+    },
+    selectChange () {
+      console.log(this.projectType)
+      console.log(this.projectLead)
+      if (this.dateSelect !== '' && this.dateSelect !== null){
+        this.selectParam.startdate = this.dateSelect[0]
+        this.selectParam.enddate = this.dateSelect[1]
+      }else {
+        this.selectParam.startdate = ''
+        this.selectParam.enddate = ''
+      }
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.where = this.selectParam
+      this.$refs.basicLayout.listData()
+    },
+  },
+  mounted() {
+    this.queryData()
+  },
+  created () {
+    this.getEnterprise()
+    this.getSysetms()
+    this.stageData()
+  },
+}
+
+</script>
+<style>
+</style>

+ 219 - 0
src/HManagement/ecycle/quotedPrice/index.vue

@@ -0,0 +1,219 @@
+<template>
+  <div>
+    <basicLayout
+        ref="basicLayout"
+        tableName="quotedPriceTable"
+        idName="sa_quotedpriceid"
+        :apiId="{query:20221020165103,del:''}"
+        :autoQuery="false"
+    >
+      <template #custom>
+        <div class="mt-10">
+          <p class="search__label">应用:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="application"
+              placeholder="请选择范围"
+              @change="applicationChange"
+          >
+            <el-option
+                v-for="item in applicationList"
+                :key="item.index"
+                :label="item.label"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label" >报价类型:</label>
+          <el-select class="inline-24" v-model="selectParam.isproject" placeholder="请选择报价类型" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in isprojectList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label  class="search__label" >状态:</label>
+          <el-select class="inline-24" v-model="selectParam.status" placeholder="请选择状态" @change="selectChange" size="small" clearable>
+            <el-option
+                v-for="item in statusList"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label" >创建日期:</label>
+          <el-date-picker
+              style="margin-right: 24px !important;"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="dateSelect"
+              type="daterange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              clearable>
+          </el-date-picker>
+        </div>
+      </template>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'specialoffer'">
+          <div v-if="scope.data.column.data.specialoffer === 0">
+            否
+          </div>
+          <div v-else-if="scope.data.column.data.specialoffer === 1">
+            是
+          </div>
+          <div v-else>--</div>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'tag'">
+          <div v-for="item in scope.data.column.data.tag" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag type="warning" size="mini">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+          <div v-for="item in scope.data.column.data.tag_sys" :key="item.index"  style="float: left;margin-left: 5px;margin-bottom: 5px">
+            <el-tag  size="mini">
+              <span>{{item}}</span>
+            </el-tag>
+          </div>
+
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'status'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '新建'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '提交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '审核'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'invaliddate'">
+          <p>{{scope.data.column.data.begdate?scope.data.column.data.begdate+ '至' + scope.data.column.data.enddate:'--'}}</p>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'salesman'">
+          {{issaler?'--':scope.data.column.data.createby}}
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'distributor'">
+          {{issaler?scope.data.column.data.enterprisename:'--'}}
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <delData class="inline-16" :ownerid="scope.data.data.sa_quotedpriceid" :sys_object="application" @delSuccess="queryData"></delData>
+        <recovery class="inline-16" :ownerid="scope.data.data.sa_quotedpriceid" :sys_object="application" @recoverySuccess="queryData"></recovery>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import recovery from "@/HManagement/ecycle/modules/recovery"
+import delData from "@/HManagement/ecycle/modules/delData"
+export default {
+  name: "index",
+  data () {
+    return {
+      application:'5',
+      applicationList:[
+        {
+          label: '销售线索',
+          value: "1",
+        },
+        {
+          label: '客户',
+          value: "2",
+        },
+        {
+          label: '合同',
+          value: "3",
+        },
+        {
+          label: '项目商机',
+          value: "4",
+        },
+        {
+          label: '报价单',
+          value: "5",
+        }
+      ],
+      dateSelect:'',
+      statusList:[
+        {
+          value:'新建'
+        },
+        {
+          value:'提交'
+        },
+        {
+          value:'审核'
+        }
+      ],
+      isprojectList:[
+        {
+          label:'客户报价',
+          value:'0'
+        },
+        {
+          label:'项目报价',
+          value:'1'
+        }
+      ],
+      selectParam: {
+        status:'',
+        isproject:'',
+        startdate:'',
+        enddate:'',
+      },
+    }
+  },
+  components:{recovery,delData},
+  methods:{
+    queryData(){
+      this.$refs.basicLayout.param.content.isAll = 0
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.deleted = 1
+      this.$refs.basicLayout.listData()
+    },
+    applicationChange(val){
+      console.log(val)
+      this.$emit("changeApplication",val)
+    },
+    selectChange(){
+      this.tabIndex = this.tabName
+      if (this.dateSelect !== '' && this.dateSelect !== null){
+        this.selectParam.startdate = this.dateSelect[0]
+        this.selectParam.enddate = this.dateSelect[1]
+      }else {
+        this.selectParam.startdate = ''
+        this.selectParam.enddate = ''
+      }
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.where = this.selectParam
+      this.$refs.basicLayout.listData()
+    },
+    /*是否经销商*/
+    async isSaler(){
+      const res = await this.$api.requested({
+        classname: "common.usercenter.usercenter",
+        content: {},
+        method: "queryUserMsg"
+      })
+      this.issaler = res.data.hr.issaler
+    },
+  },
+  mounted() {
+    this.queryData()
+    this.isSaler()
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 105 - 26
src/HManagement/ecycle/saleClue/index.vue

@@ -1,3 +1,4 @@
+
 <template>
   <div>
     <basicLayout
@@ -5,52 +6,130 @@
         tableName="saleClueTable"
         idName="sat_orderclueid"
         :apiId="{query:20221101094502,del:''}"
-        :options="options"
-        @listCreate="list"
-        @listData="list2"
-    >
+        :autoQuery="false"
+        >
       <template #custom>
+        <div class="mt-10">
+          <p class="search__label">应用:</p>
+          <el-select
+              class="inline-24"
+              size="small"
+              v-model="application"
+              placeholder="请选择范围"
+              @change="applicationChange"
+          >
+            <el-option
+                v-for="item in applicationList"
+                :key="item.index"
+                :label="item.label"
+                :value="item.value"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <p class="search__label">跟进状态:</p>
+          <el-select v-model="status" clearable class="inline-24" size="small" placeholder="请选择线索状态" @change="$refs.basicLayout.param.content.pageNumber=1;$refs.basicLayout.param.content.where.status = status;$refs.basicLayout.listData()">
+            <el-option v-for="item in statusList" :label="item.value" :key="item.rowindex" :value="item.remarks">
+            </el-option>
+          </el-select>
+        </div>
       </template>
       <template v-slot:tbList="scope">
-        <div>
+        <div v-if="scope.data.column.columnname == 'status'">
+          <span style="color:#999999" v-if="scope.data.column.data[[scope.data.column.columnname]] == '已过期'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#3874f6" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '待跟进'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已无效'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已转化'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'leader'">
+          <span v-if="scope.data.column.data[[scope.data.column.columnname]].length !== 0">{{scope.data.column.data[[scope.data.column.columnname]].length > 0 && scope.data.column.data[[scope.data.column.columnname]][0].name}}</span>
+          <span v-else>--</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'city'">
+          <span>{{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data.province+ '-' +scope.data.column.data.city+ '-' + scope.data.column.data.county:''}}</span>
+        </div>
+        <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}
         </div>
+        <span v-if="!scope.data.column.data[scope.data.column.columnname] ">--</span>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <delData class="inline-16" :ownerid="scope.data.data.sat_orderclueid" :sys_object="application" @delSuccess="delSuccess"></delData>
+        <recovery class="inline-16" :ownerid="scope.data.data.sat_orderclueid" :sys_object="application" @recoverySuccess="queryData"></recovery>
       </template>
     </basicLayout>
   </div>
 </template>
 
 <script>
+/**
+ * @basicLayout 提供this.$ref['basicLayout'].listData()方法查询列表信息
+ * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
+ * @param {string} tableName 开发端配置的表格名称
+ * @param {String} idName 数据主id名称
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
+ * @param {Array} options:{label:描述,value:值}
+ */
+import recovery from "@/HManagement/ecycle/modules/recovery"
+import delData from "@/HManagement/ecycle/modules/delData"
 export default {
-  name: "index",
-  data(){
+  data () {
     return {
-      options:[]
+      application:'1',
+      applicationList:[
+        {
+          label: '销售线索',
+          value: "1",
+        },
+        {
+          label: '客户',
+          value: "2",
+        },
+        {
+          label: '合同',
+          value: "3",
+        },
+        {
+          label: '项目商机',
+          value: "4",
+        },
+        {
+          label: '报价单',
+          value: "5",
+        }
+      ],
+      status:'',
+      statusList:[]
     }
   },
+  components:{recovery,delData},
   methods:{
-    queryData(id){
-      console.log("执行")
-      this.$refs['basicLayout'].param.content.type = id
+    queryData(){
       this.$refs.basicLayout.param.content.isAll = 0
-      this.$refs['basicLayout'].listData()
+      this.$refs.basicLayout.param.content.type = 0
+      this.$refs.basicLayout.param.content.deleted = 1
+      this.$refs.basicLayout.listData()
     },
-    list (param) {
-      param.content.isAll = 0
-      param.content.deleted = 1
-      param.content.type = 1
-    },
-    list2 (data) {
-      console.log(data);
-
+    applicationChange(val){
+      console.log(val)
+      this.$emit("changeApplication",val)
     },
+    delSuccess(){
+      this.queryData()
+    }
+  },
+  mounted() {
+    this.queryData()
+  },
+  async created () {
+    const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
+    this.statusList = res2.data
+    console.log(this.statusList);
   },
-  mounted () {
-    this.queryData(1)
-  }
 }
-</script>
-
-<style scoped>
 
+</script>
+<style>
 </style>

+ 45 - 0
src/HManagement/ecycle/saleClue/index1.vue

@@ -0,0 +1,45 @@
+<template>
+  <div>
+    <basicLayout
+        ref="basicLayout"
+        tableName="saleClueTable"
+        idName="sat_orderclueid"
+        :apiId="{query:20221101094502,del:''}">
+      <template #custom>
+      </template>
+      <template v-slot:tbList="scope">
+        <span>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </span>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "index",
+  data(){
+    return {
+
+    }
+  },
+  methods:{
+    list (param) {
+      param.content.isAll = 0
+      param.content.deleted = 1
+      param.content.type = 0
+    },
+    list2 (data) {
+      console.log(data,'数据');
+    },
+  },
+  mounted () {
+
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/customerDetail.vue

@@ -29,7 +29,7 @@
         <detailed ref="baseDetail"></detailed>
       </div>
       <div slot="slot1" class=" normal-panel"  >
-        <contacts :data="mainData"  @onSuccess="onSuccess" v-if="flag"></contacts>
+        <contacts :data="mainData" :disabled="disabled"  @onSuccess="onSuccess" v-if="flag"></contacts>
       </div>
       <div slot="slot2" class=" normal-panel">
         <address_manage :data="mainData"  v-if="flag"></address_manage>

+ 5 - 4
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/list.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="flex-align-center normal-margin">
-      <add class="inline-16" :data="data"  @insertSuccess="onSuccess" v-if="tool.checkAuth($route.name,'contactManage')"></add>
+      <add class="inline-16" :data="data"  @insertSuccess="onSuccess" v-if="tool.checkAuth($route.name,'contactManage') && !disabled"></add>
       <el-input
           style="width:300px"
           placeholder="请输入内容"
@@ -18,8 +18,8 @@
         <p>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <edit v-if="tool.chechAuth($route.name,'contactManage')" :data="scope.data" :enterprisename="data.enterprisename" @updateSuccess="onSuccess"></edit>
-        <toVoid v-if="tool.chechAuth($route.name,'contactManage')" :data="scope.data" @toVoidSuccess="onSuccess"></toVoid>
+        <edit  :data="scope.data" :enterprisename="data.enterprisename" @updateSuccess="onSuccess"></edit>
+        <toVoid  :data="scope.data" @toVoidSuccess="onSuccess" ></toVoid>
       </template>
     </tableLayout>
     <div style="margin-top:16px;text-align:right">
@@ -44,7 +44,7 @@ import toVoid from './modules/toVoid'
 import {mapGetters} from 'vuex'
 export default {
   name: "list",
-  props:["data"],
+  props:["data","disabled"],
   data(){
     return {
       tableHieght:"600px",
@@ -79,6 +79,7 @@ export default {
     async listData(){
       this.params.content.sys_enterpriseid = this.data.sys_enterpriseid
       const res = await this.$api.requested(this.params)
+      console.log(res,"表数据")
       this.list = res.data
       this.total = res.total
       this.currentPage = res.pageNumber

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/edit.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="inline-16">
-    <el-button size="small" type="text" @click="onshow" :disabled="tool.checkAuth($route.name,'contactInformationManage')">编 辑</el-button>
+    <el-button size="small" type="text" @click="onshow" :disabled="tool.checkAuth($route.name,'contactManage')">编 辑</el-button>
     <el-drawer
         title="编辑联系人"
         :visible.sync="dialogFormVisible"

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/modules/contacts/modules/toVoid.vue

@@ -3,7 +3,7 @@
     <el-popconfirm
         title="确定要删除该联系人嘛?"
         @confirm="toVoidRow()">
-      <el-button slot="reference" size="small" type="text" :disabled="tool.checkAuth($route.name,'contactInformationManage')">删 除</el-button>
+      <el-button slot="reference" size="small" type="text" :disabled="tool.checkAuth($route.name,'contactManage')">删 除</el-button>
     </el-popconfirm>
   </div>
 </template>

+ 1 - 1
src/SManagement/orderclue/index.vue

@@ -176,7 +176,7 @@ export default {
       param.content.type = 1
     },
     list2 (data) {
-      console.log(data);
+      console.log(data,"数据");
   
     },
   }

+ 2 - 1
src/SManagement/project_target/index.vue

@@ -8,7 +8,8 @@
         <div class="container normal-panel">
           <table1 ref="table" :data="hrid">
             <template v-slot:detail="scope">
-              <el-button v-if="tool.checkAuth($route.name,'read') " type="text" size="small" @click="$store.dispatch('changeDetailDrawer',true),$router.push({path:'/projectDetail',query:{id:scope.data.data.hrid,year:scope.data.year,ownerHrid:hrid}})">详情</el-button>
+              <el-button v-if="tool.checkAuth($route.name,'read') && scope.data.data.status !== '新建'" type="text" size="small" @click="$store.dispatch('changeDetailDrawer',true),$router.push({path:'/projectDetail',query:{id:scope.data.data.hrid,year:scope.data.year,ownerHrid:hrid}})">详 情</el-button>
+              <el-button v-if="tool.checkAuth($route.name,'read') && scope.data.data.status === '新建'" type="text" size="small" @click="$store.dispatch('changeDetailDrawer',true),$router.push({path:'/projectDetail',query:{id:scope.data.data.hrid,year:scope.data.year,ownerHrid:hrid}})">编 辑</el-button>
 <!--              <el-button v-if="tool.checkAuth($route.name,'update') && scope.data.data.status === '新建' " type="text" size="small" @click="$store.dispatch('DrawerShowChange',true),$router.push({path:'/editProjectInfo',query:{id:scope.data.data.hrid,year:scope.data.year}})">编辑</el-button>-->
             </template>
           </table1>

+ 3 - 3
src/SManagement/project_target/modules/detailInfo.vue

@@ -29,7 +29,7 @@
 
     <div slot="slot0">
       <div class="mt-10">
-        <project_add v-if="tool.checkAuth($route.name,'addProject')" :id="this.$route.query.id" :year="this.$route.query.year" @onSuccess="onSuccess" :disabled="disable" class="inline-16"></project_add>
+        <project_add v-if="tool.checkAuth($route.name,'addProject') && mainData.status === '新建'"  :id="this.$route.query.id" :year="this.$route.query.year" @onSuccess="onSuccess" :disabled="disable" class="inline-16"></project_add>
         <el-input  style="width:200px;" placeholder="请输入搜索内容" suffix-icon="el-icon-search" @input="searchChange" v-model="params.content.where.condition" @keyup.native.enter="getprojectTargetList(params.content.pageNumber = 1)" @clear="getprojectTargetList(params.content.pageNumber = 1)" size="small" class="input-with-select inline-16" clearable>
         </el-input>
       </div>
@@ -55,9 +55,9 @@
         </template>
 
         <template v-slot:opreation="scope">
-          <el-button type="text" size="mini" class="inline-16" @click="edit(scope.data)" v-if="editShow && tool.checkAuth($route.name,'editProjectTask')" :disabled="disable">编辑</el-button>
+          <el-button type="text" size="mini" class="inline-16"  @click="edit(scope.data)" v-if="editShow && tool.checkAuth($route.name,'editProjectTask')" :disabled="disable || mainData.status !== '新建'">编辑</el-button>
           <el-button type="text" style="color: #e09a1a" size="mini" class="inline-16" v-if="saveShow && actindex === (scope.data.index + 1)" @click="save(scope.data)">保存</el-button>
-          <project_del class="inline-16" v-if="editShow && tool.checkAuth($route.name,'deleteProject')" :data="scope.data" @onDel="onProjectSuccess" :disabled="disable"></project_del>
+          <project_del class="inline-16" :status="mainData.status" v-if="editShow && tool.checkAuth($route.name,'deleteProject')" :data="scope.data" @onDel="onProjectSuccess" :disabled="disable || mainData.status !== '新建'"></project_del>
         </template>
       </tableLayout>
       <div>

+ 16 - 1
src/SManagement/sales_forecast/index.vue

@@ -47,6 +47,9 @@
           {{scope.data.column.data[[scope.data.column.columnname]]}}
         </div>
       </template>
+      <template v-slot:tbOpreation="scope">
+<!--        <el-button type="text" size="mini" @click="detailGo(scope.data)">提 报</el-button>-->
+      </template>
     </basicLayout>
   </div>
 </template>
@@ -111,7 +114,19 @@ export default {
     selectChange(){
       this.$refs.basicLayout.param.content.where = this.selectParam
       this.$refs.basicLayout.listData()
-    }
+    },
+    detailGo(row){
+      console.log(row)
+      this.$store.dispatch('changeDetailDrawer',true)
+      this.$router.push({
+        path:'/product_detail',
+        query:{
+          id:row.sa_salesforecastbillid,
+          rowindex:row.rowindex
+        }
+      })
+
+    },
   }
 }
 

+ 1 - 1
src/router/HManagement.js

@@ -608,7 +608,7 @@ const HManagement = [
     component: () => import(/* webpackChunkName: "about" */ '@/HManagement/addressList/mygroup/index')
   },{
     path: '/ecycle',
-    name: 'ecycle',
+    name: 'recycle',
     meta: {
       title: '回收站',
       ast_nav: true,