AI销管
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

322 lines
6.9 KiB

  1. <template>
  2. <view class="box">
  3. <view class="screen">
  4. <!-- 录音标示 -->
  5. <view class="screen-record">
  6. <view class="screen-record-text">
  7. 最新状态
  8. </view>
  9. <view class="screen-record-tab">
  10. <view v-for="(item,index) in stateList" :key="index">
  11. <view :class="[screen.state==index?'screen-record-chose':'screen-record-nochose']"
  12. @click="screen.state=index">
  13. {{item.stageName}}
  14. </view>
  15. </view>
  16. </view>
  17. </view>
  18. <!-- 录音标示 -->
  19. <view class="screen-record">
  20. <view class="screen-record-text">
  21. 意向级别
  22. </view>
  23. <view class="screen-record-tab">
  24. <view :class="[screen.level==1?'screen-record-chose':'screen-record-nochose']"
  25. @click="screen.level=1">
  26. A
  27. </view>
  28. <view :class="[screen.level==2?'screen-record-chose':'screen-record-nochose']"
  29. @click="screen.level=2">
  30. B
  31. </view>
  32. <view :class="[screen.level==3?'screen-record-chose':'screen-record-nochose']"
  33. @click="screen.level=3">
  34. C
  35. </view>
  36. <view :class="[screen.level==4?'screen-record-chose':'screen-record-nochose']"
  37. @click="screen.level=4">
  38. D
  39. </view>
  40. </view>
  41. </view>
  42. <!-- <view class="screen-record" style="height: auto;">
  43. <view class="screen-record-text" style="margin-bottom: 20rpx;">
  44. 客户类型
  45. </view>
  46. <u-search placeholder="请输入搜索" v-model="keyword" :clearabled="true" :show-action="false" @change="search"></u-search>
  47. <scroll-view style="height: 180rpx;" scroll-y="true" >
  48. <view class="screen-record-tab" style="flex-wrap: wrap;">
  49. <view v-for="(item,index) in customerType" :key="index">
  50. <view :class="[item.check?'screen-record-chose':'screen-record-nochose']" style="margin-bottom: 20rpx;" @click="checkbox(index)">
  51. {{item.keywords}}
  52. </view>
  53. </view>
  54. </view>
  55. </scroll-view>
  56. </view> -->
  57. <view class="screen-record">
  58. <view class="screen-record-text">
  59. 跟进内容
  60. </view>
  61. <view class="screen-record-tab">
  62. <input type="text" placeholder="请输入跟进内容" v-model="screen.con" />
  63. </view>
  64. </view>
  65. <view class="screen-foot">
  66. <view class="screen-foot-sure" @click="screensure">
  67. 保存
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. </template>
  73. <script>
  74. export default {
  75. data() {
  76. return {
  77. value: '',
  78. screenShow: false,
  79. selectshow: false,
  80. selectTipshow: false,
  81. buildingID: '',
  82. keyword: '',
  83. screen: {
  84. state: '0',
  85. con: "",
  86. level: '1'
  87. },
  88. stateList: [],
  89. recordList: [],
  90. nextPage: 1,
  91. totalRecord: '',
  92. freeList: [],
  93. customerType: [],
  94. customerId: ''
  95. }
  96. },
  97. onShow() {
  98. },
  99. onLoad(e) {
  100. this.customerId = e.id
  101. this.buildingID = uni.getStorageSync('buildingID').id;
  102. this.recordList = []
  103. // this.getMyCustom()
  104. // this.getFreeList()
  105. this.getNewStatus()
  106. this.getCustomerType();
  107. },
  108. methods: {
  109. //选择顾问
  110. actionSelectCallback(e) {
  111. this.screen.agentId = e[0].value;
  112. this.screen.agentIdtext = e[0].label;
  113. },
  114. getCustomerType() {
  115. this.$u.get("/customer/queryKeyWords").then(res => {
  116. res.map(item => {
  117. item.check = false
  118. })
  119. this.customerType = res;
  120. })
  121. },
  122. getNewStatus() {
  123. var that = this;
  124. let premo = {
  125. houseId: uni.getStorageSync('buildingID').id
  126. }
  127. this.$u.post('/customer/getStage', premo)
  128. .then(res => {
  129. this.stateList = res
  130. })
  131. },
  132. checkbox(idx) {
  133. console.log(idx)
  134. this.customerType[idx].check = !this.customerType[idx].check
  135. },
  136. search(e) {
  137. console.log(e)
  138. },
  139. //选择标签
  140. selectCallback(e) {
  141. console.log(e[0].label)
  142. },
  143. //筛选确认
  144. screensure() {
  145. // 获取选择过的数据
  146. // let type=[]
  147. let words = []
  148. this.customerType.map(item => {
  149. if (item.check) {
  150. // type.push(item.id)
  151. words.push(item.keywords)
  152. }
  153. })
  154. // if (words.length == 0 ) {
  155. // uni.showModal({
  156. // title: '提示',
  157. // content: '请选择、类型',
  158. // showCancel: false
  159. // });
  160. // return;
  161. // }
  162. uni.showLoading({
  163. title: "保存中~",
  164. mask: true
  165. })
  166. // console.log(type)
  167. let param = {
  168. "stageCode": this.stateList[this.screen.state].stageCode,
  169. "stageName": this.stateList[this.screen.state].stageName,
  170. "remarks": this.screen.con,
  171. words,
  172. // "settingTime":"",
  173. "agentRelationPo": {
  174. "customerId": this.customerId,
  175. "level": this.screen.level,
  176. "state": this.stateList[this.screen.state].id
  177. }
  178. }
  179. this.$u.post('/customer/addZkDailyWorkRecord', param)
  180. .then(res => {
  181. // util.showSuccess("提交成功");
  182. uni.hideLoading();
  183. uni.navigateBack();
  184. })
  185. },
  186. }
  187. }
  188. </script>
  189. <style lang="scss" scoped>
  190. .box {
  191. width: 100%;
  192. height: 100%;
  193. background: #F8F8F8;
  194. }
  195. .screen {
  196. // box-sizing: border-box;
  197. // padding: 0 30rpx;
  198. background: #FFFFFF;
  199. .screen-counselor {
  200. display: flex;
  201. height: 106rpx;
  202. // padding: 40rpx 30rpx 36rpx 30rpx;
  203. padding: 0 30rpx;
  204. box-sizing: border-box;
  205. border-bottom: 1px solid #CCCCCC;
  206. .screen-text {
  207. margin: 40rpx 0 36rpx 0;
  208. font-size: 30rpx;
  209. font-weight: 400;
  210. color: #333333;
  211. line-height: 30rpx;
  212. }
  213. .screen-sel {
  214. display: flex;
  215. justify-content: space-between;
  216. width: 500rpx;
  217. margin-left: 60rpx;
  218. .screen-sel-img {
  219. margin: 40rpx 0 36rpx 0;
  220. width: 14rpx;
  221. height: 30rpx;
  222. }
  223. .screen-inp {
  224. margin-top: 20rpx;
  225. }
  226. }
  227. }
  228. .screen-record {
  229. height: 192rpx;
  230. // width: 100%;
  231. overflow: hidden;
  232. padding: 0 30rpx;
  233. box-sizing: border-box;
  234. border-bottom: 1px solid #CCCCCC;
  235. .screen-record-text {
  236. margin-top: 36rpx;
  237. font-size: 30rpx;
  238. font-weight: 400;
  239. color: #333333;
  240. line-height: 30rpx;
  241. }
  242. .screen-record-tab {
  243. margin-top: 30rpx;
  244. width: 100%;
  245. display: flex;
  246. input {
  247. flex-grow: 1;
  248. }
  249. .screen-record-chose {
  250. width: 151rpx;
  251. height: 60rpx;
  252. background: #2671E2;
  253. border-radius: 4rpx;
  254. color: #fff;
  255. border: 1px solid #2671E2;
  256. text-align: center;
  257. line-height: 60rpx;
  258. margin-right: 22rpx;
  259. }
  260. .screen-record-nochose {
  261. width: 151rpx;
  262. height: 60rpx;
  263. background: #FFFFFF;
  264. border-radius: 4rpx;
  265. border: 1px solid #C9C9C9;
  266. text-align: center;
  267. line-height: 60rpx;
  268. margin-right: 22rpx;
  269. }
  270. }
  271. }
  272. .screen-foot {
  273. height: 88rpx;
  274. display: flex;
  275. width: 100%;
  276. margin-top: 160rpx;
  277. .screen-foot-reset {
  278. width: 80%;
  279. text-align: center;
  280. margin: 0 auto;
  281. line-height: 88rpx;
  282. font-size: 30rpx;
  283. font-weight: 400;
  284. color: #666666;
  285. }
  286. .screen-foot-sure {
  287. width: 80%;
  288. margin: 0 auto;
  289. text-align: center;
  290. line-height: 88rpx;
  291. font-size: 30rpx;
  292. font-weight: 400;
  293. color: #FFFFFF;
  294. background: #2671E2;
  295. }
  296. }
  297. }
  298. </style>