index.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <div>
  3. <basicLayout
  4. ref="basicLayout"
  5. tableName="saleClueTable"
  6. idName="sat_orderclueid"
  7. :apiId="{query:20221101094502,del:''}"
  8. :autoQuery="false"
  9. @checkboxCallBack="checkboxCallBack"
  10. >
  11. <template #titleLight>
  12. <batchDeletion v-if="tool.checkAuth($route.name,'batchDeletion')" ref="batchDeletion" :ownerids="selectData" :sys_object="application" @delSuccess="queryData"></batchDeletion>
  13. <batchRecovery v-if="tool.checkAuth($route.name,'batchRecovery')" ref="batchRecovery" :ownerids="selectData" :sys_object="application" @recoverySuccess="queryData"></batchRecovery>
  14. </template>
  15. <template #custom>
  16. <div class="mt-10">
  17. <p class="search__label">应用:</p>
  18. <el-select
  19. class="inline-24"
  20. size="small"
  21. v-model="application"
  22. placeholder="请选择范围"
  23. @change="applicationChange"
  24. >
  25. <el-option
  26. v-for="item in applicationList"
  27. :key="item.index"
  28. :label="item.label"
  29. :value="item.value"
  30. ></el-option>
  31. </el-select>
  32. </div>
  33. <div class="mt-10">
  34. <p class="search__label">跟进状态:</p>
  35. <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()">
  36. <el-option v-for="item in statusList" :label="item.value" :key="item.rowindex" :value="item.remarks">
  37. </el-option>
  38. </el-select>
  39. </div>
  40. </template>
  41. <template v-slot:tbList="scope">
  42. <div v-if="scope.data.column.columnname == 'status'">
  43. <span style="color:#999999" v-if="scope.data.column.data[[scope.data.column.columnname]] == '已过期'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  44. <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  45. <span style="color:#3874f6" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '待跟进'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  46. <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已无效'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  47. <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已转化'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  48. <span v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  49. </div>
  50. <div v-else-if="scope.data.column.columnname == 'leader'">
  51. <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>
  52. <span v-else>--</span>
  53. </div>
  54. <div v-else-if="scope.data.column.columnname == 'city'">
  55. <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>
  56. </div>
  57. <div v-else>
  58. {{scope.data.column.data[[scope.data.column.columnname]]}}
  59. </div>
  60. <span v-if="!scope.data.column.data[scope.data.column.columnname] ">--</span>
  61. </template>
  62. <template v-slot:tbOpreation="scope">
  63. <delData class="inline-16" :ownerid="scope.data.data.sat_orderclueid" :sys_object="application" @delSuccess="delSuccess"></delData>
  64. <recovery type="线索" class="inline-16" :ownerid="scope.data.data.sat_orderclueid" :sys_object="application" @recoverySuccess="queryData"></recovery>
  65. </template>
  66. </basicLayout>
  67. </div>
  68. </template>
  69. <script>
  70. /**
  71. * @basicLayout 提供this.$ref['basicLayout'].listData()方法查询列表信息
  72. * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
  73. * @param {string} tableName 开发端配置的表格名称
  74. * @param {String} idName 数据主id名称
  75. * @param {object} apiId:{query:查询的接口id,del:删除的接口id}
  76. * @param {Array} options:{label:描述,value:值}
  77. */
  78. import recovery from "@/HManagement/ecycle/modules/recovery"
  79. import delData from "@/HManagement/ecycle/modules/delData"
  80. import batchDeletion from "@/HManagement/ecycle/modules/batchDeletion";
  81. import batchRecovery from "@/HManagement/ecycle/modules/batchRecovery";
  82. export default {
  83. data () {
  84. return {
  85. application:'1',
  86. applicationList:[
  87. {
  88. label: '销售线索',
  89. value: "1",
  90. },
  91. {
  92. label: '客户',
  93. value: "2",
  94. },
  95. {
  96. label: '合同',
  97. value: "3",
  98. },
  99. {
  100. label: '项目商机',
  101. value: "4",
  102. },
  103. {
  104. label: '报价单',
  105. value: "5",
  106. },
  107. {
  108. label: '合作伙伴',
  109. value: "6",
  110. }
  111. ],
  112. status:'',
  113. statusList:[],
  114. selectData:[]
  115. }
  116. },
  117. components:{recovery,delData,batchDeletion,batchRecovery},
  118. methods:{
  119. queryData(){
  120. this.$refs.basicLayout.param.content.isAll = 0
  121. this.$refs.basicLayout.param.content.type = 0
  122. this.$refs.basicLayout.param.content.deleted = 1
  123. this.$refs.basicLayout.listData()
  124. },
  125. applicationChange(val){
  126. console.log(val)
  127. this.$emit("changeApplication",val)
  128. },
  129. delSuccess(){
  130. this.queryData()
  131. },
  132. checkboxCallBack(val){
  133. this.selectData = []
  134. val.forEach((item,index) => {
  135. this.selectData[index] = item.sat_orderclueid
  136. })
  137. this.$refs.batchDeletion.length = this.selectData.length
  138. this.$refs.batchRecovery.length = this.selectData.length
  139. console.log(this.selectData)
  140. }
  141. },
  142. mounted() {
  143. this.queryData()
  144. },
  145. async created () {
  146. const res2 = await this.$store.dispatch('optiontypeselect','datafollowuptype')
  147. this.statusList = res2.data
  148. console.log(this.statusList);
  149. },
  150. }
  151. </script>
  152. <style>
  153. </style>