clewent.vue 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259
  1. <template>
  2. <div class="bgcolor clewent">
  3. <!-- 顶部条-->
  4. <div class="navBarTOP">
  5. <van-nav-bar class="navBar" left-arrow :title="title" @click-left="onClickLeft" />
  6. </div>
  7. <!-- 主体内容-->
  8. <div class="lineGrey"></div>
  9. <div class="lineGrey"></div>
  10. <div class="lineGrey"></div>
  11. <div class="lineGrey"></div>
  12. <div class="lineGrey"></div>
  13. <clewentDetails v-if="infoData" :infoData="infoData">
  14. <van-button
  15. type="info"
  16. v-if="infoData.customerClueStatus == 0"
  17. style="
  18. float: right;
  19. background: #0057ba;
  20. border-color: #0057ba;
  21. color: #fff;
  22. margin-top: -36px;
  23. border-radius: 5px;
  24. "
  25. size="small"
  26. plain
  27. class="centerBtn"
  28. @click="onstopVisit"
  29. >转交其他组织</van-button
  30. >
  31. </clewentDetails>
  32. <p style="margin: 0 16px 8px; color: #888" v-if="infoData.userCustomerClueList">
  33. 该客资历史跟进记录
  34. </p>
  35. <van-cell-group inset class="cardclewContentCell">
  36. <div style="border-radius: 6px; overflow: hidden">
  37. <van-cell
  38. is-link
  39. v-for="(item, index) in infoData.userCustomerClueList"
  40. :key="index"
  41. @click="viewFn(item.userCustomerClueId)">
  42. <template #title>
  43. <span class="custom-title">{{ item.nickName }}</span>
  44. </template>
  45. <div class="cardContent">
  46. <p class="textLeft" style="padding-bottom: 0px; margin: 0">{{ item.createTime }}</p>
  47. </div>
  48. </van-cell>
  49. </div>
  50. </van-cell-group>
  51. <!-- 批量采购 -->
  52. <template v-if="infoData.cid == 5">
  53. <div class="taskGather" v-if="taskGather">
  54. <radioGroup :clueOptionList="taskGather"></radioGroup>
  55. </div>
  56. </template>
  57. <template v-else>
  58. <div
  59. v-if="infoData.isClose != 1"
  60. class="container"
  61. style="width: 94%; margin: 0px auto; border-radius: 6px">
  62. <van-form ref="form">
  63. <div v-for="(item, index) in collectionItemList" :key="index">
  64. <div v-if="item.answerType == 'sz' && totalMoneyFlag" class="formLabel z-cell">
  65. <van-cell>
  66. <template #title>
  67. <span class="van-f-red">*</span>{{ item.customerClueName }}
  68. <!-- <span style="font-size: 12px; color: #888">{{ item.remark }}</span> -->
  69. </template>
  70. </van-cell>
  71. <van-field
  72. class="fieldNumber"
  73. v-model="item.answerValue"
  74. :placeholder="item.remark"
  75. type="number"
  76. @input="numberFn(item, index)"></van-field>
  77. </div>
  78. <div v-if="item.answerType == 'rq'" class="formLabel z-cell">
  79. <van-cell>
  80. <template #title>
  81. <span v-if="item.isMust == 0" class="van-f-red">*</span>{{ item.customerClueName
  82. }}<span style="font-size: 14px; color: #ccc">{{ item.remark }}</span>
  83. </template>
  84. </van-cell>
  85. <van-field
  86. v-model="item.answerValue"
  87. clickable
  88. name="calendar"
  89. placeholder="点击选择日期"
  90. readonly
  91. @click="showCalendarClick(index)" />
  92. <p
  93. style="
  94. color: #444;
  95. font-size: 12px;
  96. margin: 0;
  97. padding: 10px 0;
  98. text-align: right;
  99. "></p>
  100. </div>
  101. <div v-if="item.answerType == 'zp'" class="formLabel z-cell">
  102. <van-cell>
  103. <template #title>
  104. <span v-if="item.isMust == 0" class="van-f-red">*</span
  105. >{{ item.customerClueName }}
  106. </template>
  107. </van-cell>
  108. <van-row gutter="10" style="margin-bottom: 10px">
  109. <p style="margin-top: 0">
  110. <span style="font-size: 12px; color: #888">{{ item.remark }}</span>
  111. </p>
  112. <delete-upload-img :imgs="item.fileInfoList"></delete-upload-img>
  113. <upload-img
  114. :uploadid="uploadid2"
  115. @newimgarr="newimgarr1"
  116. imgText="上传照片"
  117. :indexImg="index"
  118. :customId="item.customerClueId"
  119. :summaryId="item.customerClueItemId"
  120. @click="imgClick(item, index)"></upload-img>
  121. </van-row>
  122. </div>
  123. <div v-if="item.answerType == 'wb' && showv" class="formLabel z-cell formLabeltext">
  124. <van-cell>
  125. <template #title>
  126. <span class="van-f-red" v-if="requ">*</span>{{ item.customerClueName }}
  127. </template>
  128. </van-cell>
  129. <van-field
  130. v-model="item.answerValue"
  131. :formatter="formatter"
  132. :placeholder="item.remark"
  133. rows="1"
  134. autosize
  135. type="textarea"></van-field>
  136. <!-- <p style="color: #444;font-size: 12px;margin: 0;padding:10px 0;text-align: right">{{ item.remark }}</p>-->
  137. </div>
  138. <div v-if="item.answerType == 'wb' && showvnum" class="formLabel z-cell formLabeltext">
  139. <van-cell>
  140. <template #title>
  141. <span class="van-f-red" v-if="requ">*</span>{{ item.customerClueName }}
  142. </template>
  143. </van-cell>
  144. <van-field
  145. type="digit"
  146. v-model="item.answerValue"
  147. maxlength="10"
  148. :formatter="formatter"
  149. :placeholder="item.remark"></van-field>
  150. <!-- <p style="color: #444;font-size: 12px;margin: 0;padding:10px 0;text-align: right">{{ item.remark }}</p>-->
  151. </div>
  152. <div v-if="item.answerType == 'duox'" class="formLabel z-cell">
  153. <van-cell>
  154. <template #title>
  155. <span v-if="item.isMust == 0" class="van-f-red">*</span
  156. >{{ item.customerClueName }}
  157. </template>
  158. </van-cell>
  159. <z-checkbox
  160. :answerType="item.answerType"
  161. :checkboxval="item.answerValue"
  162. :collectionType="item.customOptionList"
  163. :textc="item.customerClueId"
  164. :zCheckboxcolumns="item.customerClueOptionList"
  165. @zSelectVal="zSelectVal"></z-checkbox>
  166. </div>
  167. <div v-if="item.answerType == 'dx'" class="formLabel z-cell">
  168. <van-cell>
  169. <template #title>
  170. <span v-if="item.isMust == 0" class="van-f-red">*</span
  171. >{{ item.customerClueName }}
  172. </template>
  173. </van-cell>
  174. <van-field>
  175. <template #input>
  176. <z-radio
  177. :answerType="item.answerType"
  178. :collectionType="item.collectionType"
  179. :radio="item.answerValue"
  180. :textc="item.customerClueId"
  181. :Tindex="index"
  182. :zRadiocolumns="item.customerClueOptionList"
  183. @zSelectVal="zSelectVal"></z-radio>
  184. </template>
  185. </van-field>
  186. </div>
  187. <br />
  188. </div>
  189. <div style="height: auto" v-if="tipSHow">
  190. <p style="color: orange; margin: 6px 16px; font-size: 14px">
  191. <van-icon name="info-o" />&nbsp;{{ tipText }}
  192. </p>
  193. </div>
  194. <br />
  195. </van-form>
  196. </div>
  197. </template>
  198. <br />
  199. <div v-if="infoData.isClose != 1" class="tc" style="padding: 0 16px">
  200. <van-button class="submitBtn" block type="info" color="#0057ba" @click="onSubmit"
  201. >提交</van-button
  202. >
  203. </div>
  204. <br />
  205. <br />
  206. <br />
  207. <br />
  208. <br />
  209. <van-dialog v-model="show" title="转发客资" show-cancel-button :before-close="confirm">
  210. <p>
  211. <van-notice-bar wrapable :scrollable="false" text="一旦转交出去,则无法再查看,请确认!" />
  212. </p>
  213. <van-row class="serchInput">
  214. <van-col span="24">
  215. <van-cell
  216. class="monthNow selectcell"
  217. :title="companyName"
  218. is-link
  219. arrow-direction="down"
  220. @click="regionClick" />
  221. </van-col>
  222. <van-col span="24">
  223. <van-cell
  224. class="monthNow selectcell"
  225. :title="regionName"
  226. is-link
  227. @click="SalesRegionClick"
  228. arrow-direction="down" />
  229. </van-col>
  230. <van-col span="24">
  231. <van-cell
  232. class="monthNow selectcell"
  233. :title="deptName"
  234. is-link
  235. @click="SalesDepartmentClick"
  236. arrow-direction="down" />
  237. </van-col>
  238. </van-row>
  239. </van-dialog>
  240. <van-dialog
  241. v-model="showView"
  242. title="客资历史"
  243. show-cancel-button
  244. cancel-button-text="关闭"
  245. :show-confirm-button="confirmBtn"
  246. class="dialogz">
  247. <br />
  248. <div
  249. class="container linep containertext"
  250. style="
  251. background-color: #fff;
  252. width: 94%;
  253. margin: 0px auto;
  254. border-radius: 6px;
  255. font-size: 14px;
  256. ">
  257. <van-form ref="tabstoreVal">
  258. <div v-for="(item, index) in customItemList" :key="index">
  259. <div
  260. class="formLabel z-cell z-cells z-celly"
  261. v-if="item.answerType == 'sz' || item.answerType == 'rq'">
  262. <van-cell>
  263. <template #title
  264. >{{ index + 1 }}.{{ item.customerClueName }}
  265. <span
  266. style="
  267. color: #444;
  268. font-size: 12px;
  269. margin: 0;
  270. padding: 10px 0;
  271. text-align: right;
  272. "
  273. >{{ item.remark }}</span
  274. ></template
  275. >
  276. </van-cell>
  277. <p class="mg0" style="word-break: break-all">{{ item.answerValue }}</p>
  278. </div>
  279. <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType == 'zp'">
  280. <van-cell>
  281. <template #title>{{ index + 1 }}.{{ item.customerClueName }}</template>
  282. </van-cell>
  283. <delete-upload-imgv :imgs="item.fileInfoList"></delete-upload-imgv>
  284. </div>
  285. <div
  286. class="formLabel z-cell z-cells z-celly"
  287. v-if="item.answerType == 'wb' && viewTextShow">
  288. <van-cell>
  289. <template #title>{{ index + 1 }}.{{ item.customerClueName }}</template>
  290. </van-cell>
  291. <div class="selesetText">
  292. <p class="mg0" style="word-break: break-all">{{ item.answerValue }}</p>
  293. </div>
  294. <p
  295. style="color: #444; font-size: 12px; margin: 0; padding: 10px 0; text-align: right">
  296. {{ item.remark }}
  297. </p>
  298. <delete-upload-imgv :imgs="item.fileInfoList"></delete-upload-imgv>
  299. </div>
  300. <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType == 'duox'">
  301. <van-cell>
  302. <template #title>{{ index + 1 }}.{{ item.customerClueName }}</template>
  303. </van-cell>
  304. <div class="selesetText">
  305. <div
  306. class="mg0"
  307. v-for="(item1, index1) in item.customerClueOptionList"
  308. :key="index1">
  309. <p style="color: #0057ba" v-if="item1.checked">
  310. <i
  311. style="
  312. border: 1px solid #0057ba;
  313. margin-right: 10px;
  314. border-radius: 2px;
  315. padding: 2px;
  316. "
  317. class="van-icon van-icon-success"></i>
  318. <span>{{ item1.customerClueOption }}</span>
  319. </p>
  320. <p v-if="!item1.checked">
  321. <i
  322. style="
  323. border: 1px solid #ccc;
  324. margin-right: 10px;
  325. border-radius: 2px;
  326. color: #fff;
  327. padding: 2px;
  328. "
  329. class="van-icon van-icon-success"></i>
  330. <span>{{ item1.customerClueOption }}</span>
  331. </p>
  332. </div>
  333. </div>
  334. </div>
  335. <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType == 'dx'">
  336. <van-cell>
  337. <template #title> {{ index + 1 }}.{{ item.customerClueName }} </template>
  338. </van-cell>
  339. <div class="selesetText">
  340. <div
  341. class="mg0"
  342. v-for="(item2, index2) in item.customerClueOptionList"
  343. :key="index2">
  344. <p style="color: #0057ba" v-if="item2.checked">
  345. <i
  346. style="
  347. border: 1px solid #0057ba;
  348. border-radius: 40px;
  349. margin-right: 10px;
  350. padding: 2px;
  351. "
  352. class="van-icon van-icon-success"></i>
  353. <span>{{ item2.customerClueOption }}</span>
  354. </p>
  355. <p v-if="!item2.checked">
  356. <i
  357. style="
  358. border: 1px solid #ccc;
  359. border-radius: 40px;
  360. margin-right: 10px;
  361. color: #fff;
  362. padding: 2px;
  363. "
  364. class="van-icon van-icon-success"></i>
  365. <span>{{ item2.customerClueOption }}</span>
  366. </p>
  367. </div>
  368. </div>
  369. <delete-upload-imgv :imgs="item.fileInfoList"></delete-upload-imgv>
  370. </div>
  371. </div>
  372. </van-form>
  373. </div>
  374. </van-dialog>
  375. <van-calendar
  376. v-model="showCalendar"
  377. @confirm="onConfirm"
  378. color="#0057ba"
  379. :min-date="minDate"
  380. :max-date="maxDate"
  381. :show-confirm="false" />
  382. <van-popup v-model="RegionShow" capture position="bottom">
  383. <van-picker
  384. :columns="companyList"
  385. show-toolbar
  386. value-key="deptName"
  387. @cancel="RegionShow = false"
  388. @confirm="onregionConfirm" />
  389. </van-popup>
  390. <van-popup v-model="SalesRegionShow" capture position="bottom">
  391. <van-picker
  392. :columns="regionList"
  393. show-toolbar
  394. value-key="deptName"
  395. @cancel="SalesRegionShow = false"
  396. @confirm="onSalesRegionConfirm" />
  397. </van-popup>
  398. <van-popup v-model="SalesDepartmentShow" capture position="bottom">
  399. <van-picker
  400. :columns="deptList"
  401. show-toolbar
  402. value-key="deptName"
  403. @cancel="SalesDepartmentShow = false"
  404. @confirm="onSalesDepartmentConfirm" />
  405. </van-popup>
  406. <van-popup v-model="StaffShow" capture position="bottom">
  407. <van-picker
  408. :columns="userList"
  409. show-toolbar
  410. value-key="nickName"
  411. @cancel="StaffShow = false"
  412. @confirm="onStaffConfirm" />
  413. </van-popup>
  414. <van-popup v-model="StartTimeShow" capture position="bottom">
  415. <van-datetime-picker
  416. v-model="strtcurrentDate"
  417. :max-date="strtmaxDate"
  418. :min-date="strtminDate"
  419. title="选择查找开始时间"
  420. type="date"
  421. @cancel="StartTimeShow = false"
  422. @confirm="onStartTimeConfirm" />
  423. </van-popup>
  424. <van-popup v-model="EndTimeShow" capture position="bottom">
  425. <van-datetime-picker
  426. v-model="endcurrentDate"
  427. :max-date="endmaxDate"
  428. :min-date="endminDate"
  429. title="选择查找结束时间"
  430. type="date"
  431. @cancel="EndTimeShow = false"
  432. @confirm="onEndTimeConfirm" />
  433. </van-popup>
  434. </div>
  435. </template>
  436. <script>
  437. import timeico from '@/assets/Icon/datatims.png';
  438. import zRadio from '@/components/zRadiokz';
  439. import zCheckbox from '@/components/zCheckbox1';
  440. import uploadImg from '@/components/uploadKTask';
  441. import deleteUploadImg from '@/components/deleteUploadImg2';
  442. import deleteUploadImgv from '@/components/deleteUploadImg';
  443. import {
  444. getCustomerClueInfoById,
  445. insertCustomerClueAnswer,
  446. getDeptInfo,
  447. updateCustomerClueDept,
  448. getCustomerClueAnswerById,
  449. } from '@/api/clew';
  450. import { insertCustomerClueAnswerKs } from '@/api/complaintDetail';
  451. import { ImagePreview } from 'vant';
  452. import clewentDetails from './clewentDetails';
  453. import radioGroup from './complaintDetail/radioGroup';
  454. import { clewMixins } from '@/mixin/clew.js';
  455. export default {
  456. name: 'MyHistoricalWeekly',
  457. mixins: [clewMixins],
  458. components: {
  459. zRadio,
  460. zCheckbox,
  461. uploadImg,
  462. deleteUploadImg,
  463. deleteUploadImgv,
  464. clewentDetails,
  465. radioGroup,
  466. },
  467. data() {
  468. return {
  469. timeico: timeico,
  470. show: false,
  471. RegionShow: false,
  472. SalesRegionShow: false,
  473. SalesDepartmentShow: false,
  474. StaffShow: false,
  475. StartTimeShow: false,
  476. confirmBtn: false,
  477. dateIndex: '',
  478. EndTimeShow: false,
  479. uploadid2: 'uploadid2',
  480. strtminDate: new Date(2022, 0, 1),
  481. endminDate: new Date(2022, 0, 1),
  482. minDate: new Date(2020, 0, 1),
  483. maxDate: new Date(2090, 0, 31),
  484. strtmaxDate: new Date(),
  485. endmaxDate: new Date(),
  486. strtcurrentDate: new Date(),
  487. endcurrentDate: new Date(),
  488. companyName: '',
  489. deptName: '',
  490. regionName: '',
  491. showView: false,
  492. viewTextShow: false,
  493. companyCode: '',
  494. deptCode: '',
  495. regionCode: '',
  496. userCode: '',
  497. companyList: [],
  498. title: '',
  499. deptList: [],
  500. regionList: [],
  501. userList: [],
  502. deptForm: { type: '', parentId: '' },
  503. list: [],
  504. loading: false,
  505. finished: true,
  506. showCalendar: false,
  507. formData: {
  508. type: '2', // 汇报类型或入口 1-下属业务员日报 2-下属销售部主管周报 3-下属大区主管半月报
  509. companyId: '', // 公司id,必传 Long类型
  510. regionId: '', // 大区id,必传 Long类型
  511. deptId: '', // 部门id,如果为周报或日报为必传 Long类型
  512. userId: '', // 业务员id,如果为日报为必传 Long类型
  513. startTime: '', // 开始时间,必传 格式:yyyy-MM-dd String类型
  514. endTime: '', // 结束时间,必传 格式:yyyy-MM-dd String类型
  515. pageNum: 1, // 当前页码 int类型
  516. pageSize: 10, // 当前每页条数 int类型
  517. },
  518. tableList: [],
  519. collectionItemList: [],
  520. collectionAnswerlisd: [],
  521. flagclick: true,
  522. infoData: {},
  523. imgList: [],
  524. info: {},
  525. showv: false,
  526. isClose: '',
  527. customItemList: [],
  528. followUpResult: '',
  529. SBshow: false,
  530. requ: false,
  531. showvnum: false,
  532. tipSHow: false,
  533. namesss: '',
  534. tipText: '',
  535. totalMoneyFlag: '', //是否显示出货总金额
  536. taskGather: null, //跟进任务集合
  537. };
  538. },
  539. created() {
  540. this.formData.startTime = this.getThreeDaysAgo();
  541. this.strtcurrentDate = new Date(this.getThreeDaysAgo());
  542. this.formData.endTime = this.parseTime(new Date(), '{y}-{m}-{d}') + '';
  543. this.endminDate = new Date(this.GetPreMonthDay(this.parseTime(new Date(), '{y}-{m}-{d}'), 2));
  544. this.powerGrade = localStorage.getItem('powerGrade');
  545. this.id = this.$route.query.id;
  546. this.getDeptInfo();
  547. this.getCustomerClueInfoById();
  548. },
  549. watch: {
  550. $route(to, from) {
  551. if (to.path == '/clewent') {
  552. this.isClose = '';
  553. this.showv = false;
  554. this.SBshow = false;
  555. this.tipSHow = false;
  556. this.followUpResult = '';
  557. this.getCustomerClueInfoById();
  558. }
  559. },
  560. },
  561. methods: {
  562. pviewFn(val, imgVal) {
  563. var imgList = [];
  564. var photos = this.reportTarget.photos[val].photos;
  565. for (let i = 0; i < photos.length; i++) {
  566. imgList.push(photos[i].fileUrl);
  567. }
  568. ImagePreview({ images: imgList, startPosition: imgVal });
  569. },
  570. viewFn(val) {
  571. this.viewTextShow = false;
  572. this.showView = true;
  573. this.getDetailById(val);
  574. },
  575. getDetailById(val) {
  576. let loading1 = this.$toast.loading({
  577. duration: 0,
  578. message: '加载中...',
  579. forbidClick: true,
  580. });
  581. getCustomerClueAnswerById({ userCustomerClueId: val }).then((res) => {
  582. loading1.clear();
  583. this.reportTargetAll = res.data.reportTargetAll;
  584. this.info = res.data;
  585. this.customItemList = res.data.customerClue.customerClueItemList;
  586. this.type = res.data.userType;
  587. // if(res.data.status==3){
  588. // this.successContent=res.data.successContent
  589. // }else{
  590. // this.successContent=res.data.failContent
  591. // }
  592. for (var pl = 0; pl < this.customItemList[1].customerClueOptionList.length; pl++) {
  593. if (
  594. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  595. '跟进中'
  596. ) != -1
  597. ) {
  598. if (this.customItemList[1].customerClueOptionList[pl].value == 'Y') {
  599. this.viewTextShow = true;
  600. if (
  601. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  602. '跟进'
  603. ) != -1
  604. ) {
  605. this.customItemList[2].customerClueName =
  606. '具体合作意向反馈(拜访时间、合同方向、预估合作时间)';
  607. }
  608. }
  609. } else {
  610. if (this.customItemList[1].customerClueOptionList[pl].value == 'Y') {
  611. this.viewTextShow = true;
  612. if (
  613. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  614. '意向'
  615. ) != -1
  616. ) {
  617. this.customItemList[2].customerClueName = '没有意向原因';
  618. this.customItemList[2].remark = '请输入';
  619. }
  620. if (
  621. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  622. '开户'
  623. ) != -1
  624. ) {
  625. this.customItemList[2].customerClueName = '开户经销商代码(例:0110067321)';
  626. this.customItemList[2].remark = '请输入';
  627. }
  628. if (
  629. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  630. '开店'
  631. ) != -1
  632. ) {
  633. this.customItemList[2].customerClueName = '开户门店代码(例:0190129032)';
  634. this.customItemList[2].remark = '请输入';
  635. }
  636. if (
  637. this.customItemList[1].customerClueOptionList[pl].customerClueOption.indexOf(
  638. '出货'
  639. ) != -1
  640. ) {
  641. this.customItemList[2].customerClueName = '填写具体的产品和数量';
  642. }
  643. }
  644. }
  645. }
  646. this.reportContents = res.data.reportContents;
  647. var imgList = [];
  648. if (res.data.photos != null) {
  649. for (var k = 0; k < res.data.photos.length; k++) {
  650. imgList.push(res.data.photos[k].fileUrl + '');
  651. }
  652. }
  653. this.imgList = imgList;
  654. });
  655. },
  656. confirm(action, done) {
  657. if (action === 'confirm') {
  658. if (this.deptCode != '') {
  659. updateCustomerClueDept({
  660. customerClueInfoId: this.$route.query.id,
  661. deptId: this.deptCode,
  662. }).then((require) => {
  663. if (require.code == 200) {
  664. this.$toast.success('转发成功');
  665. this.show = false;
  666. if (this.$route.query.token != undefined) {
  667. window.location.replace(window.location.origin + '/mobile/clew');
  668. } else {
  669. this.$router.go(-1);
  670. }
  671. return done(true);
  672. } else {
  673. this.$toast(res.msg);
  674. }
  675. });
  676. } else {
  677. this.$toast('请选择要转发销售部');
  678. return done(false);
  679. }
  680. } else {
  681. return done(true);
  682. this.show = false;
  683. }
  684. },
  685. onstopVisit() {
  686. this.deptCode = '';
  687. this.regionList = [];
  688. this.deptList = [];
  689. this.companyName = '请选择公司';
  690. this.companyCode = '';
  691. this.regionName = '请选择大区';
  692. this.regionCode = '';
  693. this.deptName = '请选择销售部';
  694. this.deptCode = '';
  695. this.show = true;
  696. },
  697. getCustomerClueInfoById() {
  698. this.id = this.$route.query.id;
  699. this.collectionAnswerlisd = [];
  700. this.collectionItemList = [];
  701. getCustomerClueInfoById({ customerClueInfoId: this.id }).then((response) => {
  702. if (response.code == 200) {
  703. this.infoData = response.data;
  704. this.title = response.data.name;
  705. if (response.data.customerClue != null) {
  706. this.collectionItemList = response.data.customerClue.customerClueItemList;
  707. this.taskGather = response.data.customerClue.customerClueItemList;
  708. } else {
  709. this.collectionItemList = [];
  710. }
  711. } else {
  712. this.$toast(res.msg);
  713. }
  714. });
  715. },
  716. showCalendarClick(val) {
  717. this.dateIndex = val;
  718. this.showCalendar = true;
  719. },
  720. formatDate(date) {
  721. var Month = date.getMonth() + 1;
  722. var Day = date.getDate();
  723. if (Month < 10) {
  724. Month = '0' + Month;
  725. }
  726. if (Day < 10) {
  727. Day = '0' + Day;
  728. }
  729. return `${date.getFullYear()}-${Month}-${Day}`;
  730. },
  731. onConfirm(date) {
  732. this.showCalendar = false;
  733. this.collectionItemList[this.dateIndex].answerValue = this.formatDate(date);
  734. },
  735. formatter(value) {
  736. return value.replace(
  737. /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
  738. ''
  739. );
  740. },
  741. numberFn(val, index) {
  742. if (!/^[+-]?\d*\.{0,1}\d{0,1}$/.test(this.collectionItemList[index].answerValue)) {
  743. this.collectionItemList[index].answerValue = this.collectionItemList[
  744. index
  745. ].answerValue.replace(
  746. /\.\d{2,}$/,
  747. this.collectionItemList[index].answerValue.substr(
  748. this.collectionItemList[index].answerValue.indexOf('.'),
  749. 3
  750. )
  751. );
  752. }
  753. },
  754. zSelectVal(value) {
  755. this.tipText = '';
  756. if (value.Tindex == 1) {
  757. this.totalMoneyFlag = false;
  758. if (value.customerClueOption == '已出货') {
  759. // 判断是否显示出货总金额
  760. let isFlag = this.collectionItemList.find(
  761. (item) => item.customerClueName == '出货总金额' && item.answerType == 'sz'
  762. );
  763. if (isFlag) {
  764. this.totalMoneyFlag = true;
  765. }
  766. }
  767. this.tipSHow = false;
  768. this.collectionItemList[2].answerValue = '';
  769. for (var iv = 0; iv < value.value.length; iv++) {
  770. if (value.value[iv].customerClueOption.indexOf('跟进中') != -1) {
  771. if (value.value[iv].value == 'Y') {
  772. this.showv = true;
  773. this.requ = false;
  774. this.showvnum = false;
  775. if (value.value[iv].customerClueOption.indexOf('跟进中') != -1) {
  776. this.collectionItemList[2].customerClueName =
  777. '具体合作意向反馈(拜访时间、合同方向、预估合作时间)';
  778. this.collectionItemList[2].remark = '请输入';
  779. }
  780. } else {
  781. this.requ = true;
  782. this.showv = true;
  783. }
  784. } else {
  785. if (value.value[iv].value == 'Y') {
  786. if (value.value[iv].customerClueOption.indexOf('意向') != -1) {
  787. this.collectionItemList[2].customerClueName = '没有意向原因';
  788. this.collectionItemList[2].remark = '请输入意想原因';
  789. this.showvnum = false;
  790. }
  791. if (value.value[iv].customerClueOption.indexOf('开户') != -1) {
  792. this.collectionItemList[2].customerClueName = '开户经销商代码(例:0110067321)';
  793. this.collectionItemList[2].remark = '例:0110067321';
  794. this.tipText =
  795. '若该客户正在开户流程中,请勾选为“跟进中”,待流程走完,再将客资状态更新为“已开户”,并填写开户经销商代码。';
  796. this.showvnum = true;
  797. this.tipSHow = true;
  798. this.showv = false;
  799. }
  800. if (value.value[iv].customerClueOption.indexOf('开店') != -1) {
  801. this.collectionItemList[2].customerClueName = '开户门店代码(例:0190129032)';
  802. this.tipText =
  803. '若该客户正在开店流程中,请勾选为“跟进中”,待流程走完,再将客资状态更新为“已开店”,并填写开店编码。';
  804. this.collectionItemList[2].remark = '例:0190129032';
  805. this.showvnum = true;
  806. this.tipSHow = true;
  807. this.showv = false;
  808. }
  809. if (value.value[iv].customerClueOption.indexOf('出货') != -1) {
  810. this.showvnum = false;
  811. this.collectionItemList[2].customerClueName = '填写具体的产品和数量';
  812. this.collectionItemList[2].remark = '例:100桶时时丽,50包超好贴';
  813. }
  814. }
  815. }
  816. }
  817. } else {
  818. if (value.value[1].value == 'Y') {
  819. this.SBshow = false;
  820. } else {
  821. this.SBshow = true;
  822. }
  823. }
  824. var collectionAnswerlisd = this.collectionAnswerlisd;
  825. if (collectionAnswerlisd.length > 0) {
  826. var num = 0;
  827. for (var a = 0; a < collectionAnswerlisd.length; a++) {
  828. if (collectionAnswerlisd[a].id == value.id) {
  829. collectionAnswerlisd[a] = value;
  830. num = 0;
  831. } else {
  832. num = 1;
  833. }
  834. }
  835. if (num > 0) {
  836. collectionAnswerlisd.push(value);
  837. }
  838. } else {
  839. collectionAnswerlisd.push(value);
  840. }
  841. this.collectionAnswerlisd = collectionAnswerlisd;
  842. },
  843. imgClick(val, index) {
  844. this.collectionId = val.collectionId + '';
  845. this.indeximg = index;
  846. this.show = true;
  847. },
  848. newimgarr1(val) {
  849. if (
  850. this.collectionItemList[val.index].fileInfoList == null ||
  851. this.collectionItemList[val.index].fileInfoList == undefined
  852. ) {
  853. this.collectionItemList[val.index].fileInfoList = [];
  854. this.collectionItemList[val.index].fileIdList = [];
  855. }
  856. this.collectionItemList[val.index].fileInfoList.push(val);
  857. this.collectionItemList[val.index].fileIdList.push(val.id);
  858. },
  859. dateFn(val) {
  860. return val.slice(0, 4) + '-' + val.slice(4, 6) + '-' + val.slice(6, 8);
  861. },
  862. onLoad() {},
  863. purchaseSubmit() {
  864. this.requiredFlag = true;
  865. let customerClueItemList = [];
  866. // 每一个层级都是一道题的题目,子级就是题,被选中和填写的题要带上题目一块上传(题的同级也要上传)
  867. // 第一级题目下的题默认都要上传
  868. let params = {
  869. customerClueItemList: [],
  870. customerClassify: this.customerClassify,
  871. customerSubClassify: this.customerSubClassify,
  872. };
  873. params.customerClueItemList.push(...this.deepClone(this.taskGather, 0));
  874. // let optionList = this.taskGather[0].customerClueOptionList;
  875. this.filterOption(this.taskGather, params);
  876. console.log(JSON.stringify(params));
  877. // 必填验证
  878. if (this.requiredFlag) {
  879. this.toastLoading(0, '加载中...', true);
  880. insertCustomerClueAnswerKs(params).then((res) => {
  881. this.toastLoading().clear();
  882. if (res.code == 200) {
  883. this.$toast(res.msg);
  884. window.location.replace(window.location.origin + '/mobile/clew');
  885. } else {
  886. this.$toast(res.msg);
  887. }
  888. });
  889. } else {
  890. this.$toast(this.requiredMessage);
  891. }
  892. },
  893. onSubmit() {
  894. if (this.infoDatacid == '5') {
  895. this.purchaseSubmit();
  896. } else {
  897. for (var c = 0; c < this.collectionAnswerlisd.length; c++) {
  898. for (var b = 0; b < this.collectionItemList.length; b++) {
  899. if (this.collectionAnswerlisd[c].id == this.collectionItemList[b].customId) {
  900. this.collectionItemList[b].customOptionList = this.collectionAnswerlisd[c].value;
  901. }
  902. }
  903. }
  904. for (var i = 0; i < this.collectionItemList.length; i++) {
  905. this.collectionItemList[i].customerClueInfoId = this.infoData.customerClueInfoId;
  906. }
  907. if (
  908. this.collectionItemList[0].customerClueOptionList[1].value == 'N' &&
  909. this.collectionItemList[0].customerClueOptionList[0].value == 'N'
  910. ) {
  911. this.$toast('请选择回访电话是否接通');
  912. return;
  913. }
  914. var show = false;
  915. var textshow = false;
  916. for (var i1 = 0; i1 < this.collectionItemList[1].customerClueOptionList.length; i1++) {
  917. if (this.collectionItemList[1].customerClueOptionList[i1].value == 'Y') {
  918. show = true;
  919. if (
  920. this.collectionItemList[1].customerClueOptionList[i1].customerClueOption.indexOf(
  921. '跟进中'
  922. ) == -1
  923. ) {
  924. if (this.collectionItemList[2].answerValue.trim() == '') {
  925. textshow = true;
  926. }
  927. }
  928. }
  929. }
  930. if (!show) {
  931. this.$toast('请选择跟进结果');
  932. return;
  933. }
  934. if (
  935. this.collectionItemList[0].customerClueOptionList[1].value == 'Y' &&
  936. this.collectionItemList[1].customerClueOptionList[1].value == 'N' &&
  937. this.collectionItemList[1].customerClueOptionList[0].value == 'N'
  938. ) {
  939. this.$toast('当您的回访电话未接通,跟进结果请选择 “跟进中”或者“没有意向”');
  940. return;
  941. }
  942. if (textshow) {
  943. if (
  944. this.collectionItemList[1].customerClueOptionList[2].value == 'Y' ||
  945. this.collectionItemList[1].customerClueOptionList[3].value == 'Y'
  946. ) {
  947. this.$toast('请输入10位' + this.collectionItemList[2].customerClueName);
  948. } else {
  949. this.$toast('请输入' + this.collectionItemList[2].customerClueName);
  950. }
  951. return;
  952. }
  953. if (this.showvnum) {
  954. if (this.collectionItemList[2].answerValue.trim().length < 10) {
  955. this.$toast('请输入10位' + this.collectionItemList[2].customerClueName);
  956. return;
  957. }
  958. }
  959. // 出货总金额必填校验
  960. if (this.totalMoneyFlag) {
  961. let obj = this.collectionItemList.find(
  962. (item) => item.customerClueName == '出货总金额' && item.answerType == 'sz'
  963. );
  964. if (!obj.answerValue) {
  965. this.$toast('请输入' + obj.customerClueName);
  966. return;
  967. }
  968. }
  969. var form = {
  970. isClose: this.isClose,
  971. followUpResult: this.followUpResult,
  972. customerClueItemList: this.collectionItemList,
  973. };
  974. if (this.flagclick) {
  975. this.flagclick = false;
  976. this.timer = null;
  977. this.timer = setTimeout(() => {
  978. this.flagclick = true;
  979. }, 2000);
  980. insertCustomerClueAnswer(form).then((res) => {
  981. if (res.code == 200) {
  982. if (this.$route.query.token != undefined) {
  983. window.location.replace(window.location.origin + '/mobile/clew');
  984. } else {
  985. this.$router.go(-1);
  986. }
  987. } else {
  988. this.$toast(res.msg);
  989. }
  990. });
  991. }
  992. }
  993. },
  994. getThreeDaysAgo() {
  995. let myDate = new Date();
  996. let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 14); //最后一个数字30可改,30天的意思
  997. let lastY = lw.getFullYear();
  998. let lastM = lw.getMonth() + 1;
  999. let lastD = lw.getDate();
  1000. let startData =
  1001. lastY + '-' + (lastM < 10 ? '0' + lastM : lastM) + '-' + (lastD < 10 ? '0' + lastD : lastD); //三十天之前日期
  1002. return startData;
  1003. },
  1004. GetPreMonthDay(date, monthNum, type) {
  1005. var dateArr = date.split('-');
  1006. var year = dateArr[0]; //获取当前日期的年份
  1007. var month = dateArr[1]; //获取当前日期的月份
  1008. var day = dateArr[2]; //获取当前日期的日
  1009. var days = new Date(year, month, 0);
  1010. days = days.getDate(); //获取当前日期中月的天数
  1011. var year2 = year;
  1012. var month2 = parseInt(month) - monthNum;
  1013. if (month2 <= 0) {
  1014. var absM = Math.abs(month2);
  1015. year2 = parseInt(year2) - Math.ceil(absM / 12 == 0 ? 1 : parseInt(absM) / 12);
  1016. month2 = 12 - (absM % 12);
  1017. }
  1018. var day2 = day;
  1019. var days2 = new Date(year2, month2, 0);
  1020. days2 = days2.getDate();
  1021. if (day2 > days2) {
  1022. day2 = days2;
  1023. }
  1024. if (month2 < 10) {
  1025. month2 = '0' + month2;
  1026. }
  1027. var t2 = '';
  1028. if (monthNum > 0) {
  1029. t2 = year2 + '-' + month2 + '-01';
  1030. } else {
  1031. if (type == 'end') {
  1032. var Months = new Date().getMonth() + 1;
  1033. var days111 = new Date().getDate();
  1034. if (Months < 10) {
  1035. Months = '0' + Months;
  1036. }
  1037. if (days111 < 10) {
  1038. days111 = '0' + days111;
  1039. }
  1040. if (parseInt(month2) >= new Date().getMonth() + 1) {
  1041. t2 = year2 + '-' + Months + '-' + days111;
  1042. } else {
  1043. var daysd = this.getMonthDays(year2, month2);
  1044. t2 = year2 + '-' + month2 + '-' + daysd;
  1045. }
  1046. } else {
  1047. t2 = year2 + '-' + month2 + '-' + day2;
  1048. }
  1049. }
  1050. return t2;
  1051. },
  1052. getMonthDays(year, month) {
  1053. var stratDate = new Date(year, month - 1, 1),
  1054. endData = new Date(year, month, 1);
  1055. var days = (endData - stratDate) / (1000 * 60 * 60 * 24);
  1056. return days;
  1057. },
  1058. getDeptInfo(type, grade) {
  1059. this.deptForm.type = type;
  1060. if (grade == '1') {
  1061. this.deptForm.parentId = this.companyCode;
  1062. } else if (grade == '2') {
  1063. this.deptForm.parentId = this.regionCode;
  1064. } else {
  1065. this.deptForm.type = '';
  1066. this.deptForm.parentId = '';
  1067. }
  1068. getDeptInfo(this.deptForm).then((res) => {
  1069. res.data.forEach((item) => {
  1070. delete item.children;
  1071. });
  1072. if (grade == '1') {
  1073. this.regionList = res.data;
  1074. } else if (grade == '2') {
  1075. this.deptList = res.data;
  1076. } else {
  1077. this.companyList = res.data;
  1078. }
  1079. });
  1080. },
  1081. onClickLeft() {
  1082. this.$router.go(-1);
  1083. },
  1084. regionClick() {
  1085. this.RegionShow = true;
  1086. },
  1087. SalesRegionClick(val) {
  1088. this.SalesRegionShow = true;
  1089. },
  1090. SalesDepartmentClick() {
  1091. this.SalesDepartmentShow = true;
  1092. },
  1093. StaffClick() {
  1094. this.StaffShow = true;
  1095. },
  1096. StartTimeClick() {
  1097. this.StartTimeShow = true;
  1098. },
  1099. EndTimeClick() {
  1100. this.EndTimeShow = true;
  1101. },
  1102. onregionConfirm(val) {
  1103. this.RegionShow = false;
  1104. this.companyName = val.deptName;
  1105. this.companyCode = val.deptId;
  1106. this.regionName = '请选择大区';
  1107. this.regionCode = '';
  1108. this.deptName = '请选择销售部';
  1109. this.deptCode = '';
  1110. this.getDeptInfo('dept', 1);
  1111. },
  1112. onSalesRegionConfirm(val) {
  1113. this.SalesRegionShow = false;
  1114. this.regionName = val.deptName;
  1115. this.regionCode = val.deptId;
  1116. if (val.deptId != '') {
  1117. this.getDeptInfo('dept', 2);
  1118. }
  1119. this.deptName = '全部销售部';
  1120. this.deptCode = '';
  1121. },
  1122. onSalesDepartmentConfirm(val) {
  1123. this.SalesDepartmentShow = false;
  1124. this.deptName = val.deptName;
  1125. if (val.deptId != '') {
  1126. this.deptCode = val.deptId;
  1127. this.getDeptInfo('user');
  1128. }
  1129. this.userName = '全部业务员';
  1130. this.userCode = '';
  1131. },
  1132. onStaffConfirm(val) {
  1133. this.StaffShow = false;
  1134. this.userName = val.nickName;
  1135. this.userCode = val.userId;
  1136. },
  1137. onStartTimeConfirm(val) {
  1138. this.formData.startTime = this.parseTime(new Date(val), '{y}-{m}-{d}') + '';
  1139. this.StartTimeShow = false;
  1140. this.endminDate = new Date(val);
  1141. this.endmaxDate = new Date(this.GetPreMonthDay(this.formData.startTime, -2, 'end'));
  1142. if (
  1143. new Date(this.formData.startTime).getTime() > new Date(this.formData.endTime).getTime() ||
  1144. new Date(this.endmaxDate).getTime() < new Date(this.formData.endTime).getTime()
  1145. ) {
  1146. this.formData.endTime = this.parseTime(new Date(val), '{y}-{m}-{d}') + '';
  1147. this.endcurrentDate = this.GetPreMonthDay(this.formData.startTime, -2);
  1148. }
  1149. this.list = [];
  1150. this.formData.pageNum = 1;
  1151. },
  1152. onEndTimeConfirm(val) {
  1153. this.formData.endTime = this.parseTime(new Date(val), '{y}-{m}-{d}');
  1154. this.strtmaxDate = new Date(val);
  1155. if (new Date(this.formData.startTime).getTime() > new Date(this.formData.endTime).getTime()) {
  1156. this.formData.startTime = this.formData.endTime;
  1157. }
  1158. this.list = [];
  1159. this.formData.pageNum = 1;
  1160. this.EndTimeShow = false;
  1161. },
  1162. },
  1163. };
  1164. </script>
  1165. <style scoped lang="scss">
  1166. .clewent {
  1167. .container {
  1168. background-color: white;
  1169. }
  1170. .formLabel {
  1171. margin: 0 16px;
  1172. border-bottom: 1px solid #f1f1f1;
  1173. }
  1174. .formLabel .van-cell {
  1175. padding: 10px 0;
  1176. font-size: 14px;
  1177. }
  1178. .formLabel .van-cell::after {
  1179. border: 0;
  1180. }
  1181. .formLabeltext .van-field {
  1182. border: 1px solid #f1f1f1;
  1183. padding: 6px;
  1184. width: 100%;
  1185. border-radius: 4px;
  1186. overflow: hidden;
  1187. }
  1188. .formLabel .van-field__control {
  1189. padding: 0 10px;
  1190. }
  1191. .z-checkbox .van-radio {
  1192. padding: 6px 0;
  1193. }
  1194. .z-cell .van-cell__title {
  1195. font-size: 14px;
  1196. }
  1197. .taskGather {
  1198. padding-left: 20px;
  1199. padding-bottom: 20px;
  1200. .title {
  1201. font-size: 15px;
  1202. font-weight: 600;
  1203. padding: 5px 0;
  1204. }
  1205. }
  1206. }
  1207. </style>
  1208. <style>
  1209. .cardclewContentCell {
  1210. margin: 0 10px;
  1211. }
  1212. .formLabel .van-radio__label,
  1213. .formLabel .van-checkbox__label {
  1214. font-size: 14px;
  1215. }
  1216. .van-dialog__confirm,
  1217. .van-dialog__confirm:active {
  1218. color: #1989fa;
  1219. }
  1220. .cardclewContent {
  1221. background: #fff;
  1222. box-sizing: border-box;
  1223. padding: 10px 16px;
  1224. margin: 6px 10px 10px;
  1225. }
  1226. .cardclewContent .info {
  1227. font-size: 14px;
  1228. color: #444;
  1229. line-height: 28px;
  1230. }
  1231. .cardclewContent .title p {
  1232. padding: 0;
  1233. margin: 0;
  1234. }
  1235. .cardclewContent .title .textLeft {
  1236. display: inline-block;
  1237. padding-bottom: 10px;
  1238. }
  1239. .dialogz {
  1240. width: 100%;
  1241. }
  1242. .dialogz .van-dialog__content {
  1243. height: 72vh;
  1244. overflow-y: auto;
  1245. }
  1246. .radioboxss .van-radio {
  1247. margin-bottom: 6px;
  1248. }
  1249. .fieldNumber {
  1250. border: 1px solid #f1f1f1;
  1251. padding-left: 5px !important;
  1252. }
  1253. </style>