AI销管
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

newFollowup.vue 7.9 KiB

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