index.vue 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <template>
  2. <div>
  3. <basicLayout
  4. ref="list"
  5. formPath="salerPrivatecustomer"
  6. tableName="salerPrivatecustomerTable"
  7. idName="sa_customersid"
  8. :apiId="{query:20221012164402,del:''}"
  9. :autoQuery="false"
  10. :detailPath="{path:'/customerDetail',param:{tabIndex:tabIndex}}">
  11. <!-- <template v-slot:tempChild="scope">
  12. <el-select v-if="scope.data === 'type'" class="inline-16" v-model="selectParam.type" size="mini" placeholder="请选择" @change="selectChange" clearable>
  13. <el-option
  14. v-for="item in option.typeData"
  15. :key="item.value"
  16. :label="item.value"
  17. :value="item.value">
  18. </el-option>
  19. </el-select>
  20. <el-select v-if="scope.data === 'customergrade'" v-model="selectParam.customergrade" size="mini" placeholder="请选择" @change="selectChange" clearable>
  21. <el-option
  22. v-for="item in option.gradeData"
  23. :key="item.value"
  24. :label="item.value"
  25. :value="item.value">
  26. </el-option>
  27. </el-select>
  28. <el-select v-if="scope.data === 'industry'" v-model="selectParam.industry" size="mini" placeholder="请选择" @change="selectChange" clearable>
  29. <el-option
  30. v-for="item in option.industryData"
  31. :key="item.value"
  32. :label="item.value"
  33. :value="item.value">
  34. </el-option>
  35. </el-select>
  36. <el-select v-if="scope.data === 'status'" v-model="selectParam.status" size="mini" placeholder="请选择" @change="selectChange" clearable>
  37. <el-option
  38. v-for="item in option.status"
  39. :key="item.value"
  40. :label="item.value"
  41. :value="item.value">
  42. </el-option>
  43. </el-select>
  44. </template> -->
  45. <template #custom>
  46. <div class="mt-10">
  47. <label class="search__label">范围:</label>
  48. <el-select class="inline-16" v-model="value" size="small" placeholder="请选择数据分类" @change="selectChange" clearable>
  49. <el-option
  50. v-for="item in editableTabs"
  51. :key="item.index"
  52. :label="item.title"
  53. :value="item.name">
  54. </el-option>
  55. </el-select>
  56. </div>
  57. <div class="mt-10">
  58. <label class="search__label">客户类型:</label>
  59. <el-select class="inline-16" v-model="selectParam.type" size="small" placeholder="请选择" @change="selectChange" clearable>
  60. <el-option
  61. v-for="item in option.typeData"
  62. :key="item.value"
  63. :label="item.value"
  64. :value="item.value">
  65. </el-option>
  66. </el-select>
  67. </div>
  68. <div class="mt-10">
  69. <label class="search__label">客户等级:</label>
  70. <el-select class="inline-16" v-model="selectParam.customergrade" size="small" placeholder="请选择" @change="selectChange" clearable>
  71. <el-option
  72. v-for="item in option.gradeData"
  73. :key="item.value"
  74. :label="item.value"
  75. :value="item.value">
  76. </el-option>
  77. </el-select>
  78. </div>
  79. <div class="mt-10">
  80. <label class="search__label">所属行业:</label>
  81. <el-select class="inline-16" v-model="selectParam.industry" size="small" placeholder="请选择" @change="selectChange" clearable>
  82. <el-option
  83. v-for="item in option.industryData"
  84. :key="item.value"
  85. :label="item.value"
  86. :value="item.value">
  87. </el-option>
  88. </el-select>
  89. </div>
  90. <div class="mt-10">
  91. <label class="search__label">合作状态:</label>
  92. <el-select class="inline-16" v-model="selectParam.status" size="small" placeholder="请选择" @change="selectChange" clearable>
  93. <el-option
  94. v-for="item in option.status"
  95. :key="item.value"
  96. :label="item.value"
  97. :value="item.value">
  98. </el-option>
  99. </el-select>
  100. </div>
  101. <div class="mt-10">
  102. <label class="search__label" >创建时间:</label>
  103. <el-date-picker
  104. style="margin-right: 24px !important;"
  105. size="small"
  106. @change="selectChange"
  107. value-format="yyyy-MM-dd"
  108. v-model="dateSelect"
  109. type="daterange"
  110. range-separator="至"
  111. start-placeholder="开始日期"
  112. end-placeholder="结束日期"
  113. clearable>
  114. </el-date-picker>
  115. </div>
  116. </template>
  117. <template v-slot:tbList="scope">
  118. <div v-if="scope.data.column.columnname === 'isleader'">
  119. <span v-if="scope.data.column.data['leader'].length !== 0">已分配</span>
  120. <span v-else>未分配</span>
  121. </div>
  122. <div v-else-if="scope.data.column.columnname === 'contact'">
  123. <span>{{scope.data.column.data['leader'][0]?scope.data.column.data['leader'][0].name:'--'}}</span>
  124. </div>
  125. <div v-else>
  126. {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
  127. </div>
  128. </template>
  129. </basicLayout>
  130. </div>
  131. </template>
  132. <script>
  133. export default {
  134. name: "index",
  135. data() {
  136. return {
  137. value:'1',
  138. editableTabsValue: "我负责的",
  139. editableTabs: [{
  140. title: '我负责的',
  141. name: "1",
  142. }, {
  143. title: '我参与的',
  144. name: "2",
  145. }, {
  146. title: '我下属负责的',
  147. name: "3",
  148. }, {
  149. title: '我下属参与的',
  150. name: "4",
  151. }],
  152. tabIndex:"1",
  153. options:[],
  154. listData:[],
  155. option:{
  156. typeData:[],
  157. gradeData:[],
  158. industryData:[],
  159. status:[
  160. {
  161. value:'潜在'
  162. },
  163. {
  164. value:'合作中'
  165. },
  166. {
  167. value:'已终止'
  168. }
  169. ]
  170. },
  171. selectParam: {
  172. status:'',
  173. type:'',
  174. customergrade:'',
  175. industry:'',
  176. startdate:'',
  177. enddate:'',
  178. },
  179. dateSelect:''
  180. }
  181. },
  182. mounted() {
  183. this.queryData('1')
  184. this.typeList()
  185. this.gradeList()
  186. this.industryList()
  187. },
  188. methods:{
  189. queryData(id){
  190. this.$refs['list'].param.content.type = id
  191. this.$refs['list'].param.content.isExport = false
  192. this.$refs['list'].listData()
  193. // this.$store.dispatch('sendDataToForm',)
  194. },
  195. handleCommand(command){
  196. this.tabIndex = command.name
  197. this.editableTabsValue = command.title
  198. this.selectChange()
  199. /*this.$refs['list'].param.content.type = command.name
  200. this.$refs['list'].param.content.isExport = 0
  201. this.$refs['list'].listData()*/
  202. // this.$store.dispatch('sendDataToForm',)
  203. },
  204. /*客户类型列表*/
  205. async typeList(){
  206. const res = await this.$api.requested({
  207. "classname": "sysmanage.develop.optiontype.optiontype",
  208. "method": "optiontypeselect",
  209. "content": {
  210. "pageNumber": 1,
  211. "pageSize": 20,
  212. "typename": "customertypemx",
  213. "parameter": {
  214. "siteid": "YOSTEST2"
  215. }
  216. }
  217. })
  218. this.option.typeData = res.data
  219. console.log("客户类型",res.data)
  220. console.log(this.option.typeData)
  221. },
  222. /*客户等级*/
  223. async gradeList(){
  224. const res = await this.$api.requested({
  225. "classname": "sysmanage.develop.optiontype.optiontype",
  226. "method": "optiontypeselect",
  227. "content": {
  228. "pageNumber": 1,
  229. "pageSize": 20,
  230. "typename": "customergrade",
  231. "parameter": {
  232. "siteid": "YOSTEST2"
  233. }
  234. }
  235. })
  236. console.log("客户等级",res.data)
  237. /*for (var i=0;i<res.data.length; i++){
  238. if (res.data[i].remarks !== ''){
  239. this.options.gradeData[i] = res.data[i].value + "——" + res.data[i].remarks
  240. }else{
  241. this.options.gradeData[i] = res.data[i].value
  242. }
  243. }*/
  244. this.option.gradeData = res.data
  245. console.log("处理后客户等级",this.option.gradeData)
  246. },
  247. /*行业列表*/
  248. async industryList(){
  249. const res = await this.$api.requested({
  250. "classname": "sysmanage.develop.optiontype.optiontype",
  251. "method": "optiontypeselect",
  252. "content": {
  253. "pageNumber": 1,
  254. "pageSize": 20,
  255. "typename": "industry",
  256. "parameter": {
  257. "siteid": "YOSTEST2"
  258. }
  259. }
  260. })
  261. this.option.industryData = res.data
  262. },
  263. selectChange(){
  264. this.tabIndex = this.value
  265. if (this.dateSelect !== '' && this.dateSelect !== null){
  266. this.selectParam.startdate = this.dateSelect[0]
  267. this.selectParam.enddate = this.dateSelect[1]
  268. }else {
  269. this.selectParam.startdate = ''
  270. this.selectParam.enddate = ''
  271. }
  272. this.$refs.list.param.content.type = this.tabIndex
  273. this.$refs.list.param.content.where = Object.assign({},this.$refs.list.param.content.where,this.selectParam)
  274. this.$refs.list.param.content.phonenumber = 1
  275. this.$refs['list'].listData()
  276. }
  277. },
  278. created() {
  279. },
  280. }
  281. </script>
  282. <style scoped>
  283. .el-dropdown-link {
  284. cursor: pointer;
  285. color: #151515;
  286. font-size: 16px;
  287. }
  288. .el-divider--vertical{
  289. margin: 0 16px;
  290. }
  291. .el-icon-arrow-down {
  292. font-size: 16px;
  293. }
  294. .s_panel {
  295. margin-bottom:10px
  296. }
  297. </style>