add.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914
  1. <template>
  2. <view class="container qualifications" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0' }">
  3. <view class="remarks-content-club" @click="handleClickClunInfo">
  4. <view class="content-club-le">
  5. <view class="club-le-text">
  6. <text class="label">机构名称:</text> <text class="text">{{ clubInfo.name }}</text>
  7. </view>
  8. <view class="club-le-text">
  9. <text class="label">联系人:</text> <text class="text">{{ clubInfo.linkMan }}</text>
  10. <text class="label phone">手机号:</text> <text class="text">{{ clubInfo.contractMobile }}</text>
  11. </view>
  12. <view class="club-le-text">
  13. <text class="label">地址:</text>
  14. <text class="text" v-if="clubInfo.provincialAddress"
  15. >{{ clubInfo.provincialAddress }}{{ clubInfo.address }}</text
  16. >
  17. </view>
  18. </view>
  19. <view class="content-club-ri"> <text class="iconfont icon-xiayibu"></text> </view>
  20. </view>
  21. <view class="remarks-content">
  22. <view class="list-view-title">
  23. <view class="list-view-h1"><text>*</text>咨询人:</view>
  24. </view>
  25. <view class="remarks-input">
  26. <input
  27. class="input"
  28. type="text"
  29. v-model="remarksParams.questionMan"
  30. value=""
  31. placeholder="请输入和你聊天的客户姓名"
  32. maxlength="15"
  33. />
  34. </view>
  35. <view class="list-view-title">
  36. <view class="list-view-h1"><text>*</text>咨询类别:</view>
  37. </view>
  38. <view class="remarks-category">
  39. <view
  40. class="checkbox-list"
  41. :class="category.isChecked ? 'checked' : ''"
  42. v-for="(category, index) in categorys"
  43. :key="index"
  44. @click="choiceCategorys(category, index)"
  45. >
  46. <text class="iconfont" :class="category.isChecked ? 'icon-yixuanze' : 'icon-weixuanze'"></text>
  47. {{ category.className }}
  48. </view>
  49. </view>
  50. <view class="list-view-title"> <view class="list-view-h1">机构类型:</view> </view>
  51. <view class="remarks-input">
  52. <input
  53. class="input"
  54. type="text"
  55. v-model="remarksParams.questionMan"
  56. value=""
  57. placeholder="如美甲店,医院"
  58. maxlength="15"
  59. />
  60. </view>
  61. <view class="list-view-title">
  62. <view class="list-view-h1"><text>*</text>关键词记录:</view>
  63. <view class="list-view-p"
  64. >(请总结客户的咨询内容,以商品或者服务的关键词形式填写,不需要填口语化的内容。)</view
  65. >
  66. </view>
  67. <view class="list-view-list-main">
  68. <view class="list-view-list" v-for="(item, index) in logisticsList" :key="index">
  69. <view class="list-view-input">
  70. <input
  71. class="input"
  72. type="text"
  73. v-model="item.label"
  74. placeholder="请输入关键词,不超过10个汉字"
  75. maxlength="10"
  76. @input="bindRemarkAction(index, $event)"
  77. />
  78. <view class="list-view-assAction" v-if="item.isAssociation">
  79. <scroll-view class="tui-popup-scroll train" scroll-y="true">
  80. <view
  81. class="ass-list"
  82. v-for="(ass, assIndex) in assActionList"
  83. :key="assIndex"
  84. @click="SelectAssociationFn(ass.name,item)"
  85. >{{ ass.name }}</view
  86. >
  87. </scroll-view>
  88. </view>
  89. </view>
  90. <view class="list-view-btn">
  91. <text
  92. class="iconfont icon-zengjia"
  93. v-if="logisticsList.length < 9 && index === logisticsList.length - 1"
  94. @click="addListFn(item, index)"
  95. ></text>
  96. <text
  97. class="iconfont icon-shanchu4"
  98. v-if="logisticsList.length > 1 && index !== logisticsList.length - 1"
  99. @click="deleteLogistItemFn(item, index)"
  100. ></text>
  101. </view>
  102. </view>
  103. </view>
  104. <view class="list-view-title">
  105. <view class="list-view-h1"><text>*</text>价格敏感度:</view>
  106. </view>
  107. <view class="list-view-radio">
  108. <picker @change="bindPickerChange(1, $event)" :value="index" :range="priceActions" range-key="name">
  109. <input
  110. class="input"
  111. type="text"
  112. disabled="false"
  113. v-model="priceFlagText"
  114. value=""
  115. placeholder="请选择"
  116. />
  117. <text class="iconfont icon-xiangyou"></text>
  118. </picker>
  119. </view>
  120. <view class="list-view-title">
  121. <view class="list-view-h1"><text>*</text>意向程度:</view>
  122. </view>
  123. <view class="list-view-radio">
  124. <picker @change="bindPickerChange(2, $event)" :value="index" :range="intenActions" range-key="name">
  125. <input
  126. class="input"
  127. type="text"
  128. disabled="false"
  129. v-model="intenFlagText"
  130. value=""
  131. placeholder="请选择"
  132. />
  133. <text class="iconfont icon-xiangyou"></text>
  134. </picker>
  135. </view>
  136. <view class="list-view-title">
  137. <view class="list-view-h1"><text>*</text>跟进状态:</view>
  138. </view>
  139. <view class="list-view-radio">
  140. <picker @change="bindPickerChange(3, $event)" :value="index" :range="stateActions" range-key="name">
  141. <input
  142. class="input"
  143. type="text"
  144. disabled="false"
  145. v-model="followStateText"
  146. value=""
  147. placeholder="请选择"
  148. />
  149. <text class="iconfont icon-xiangyou"></text>
  150. </picker>
  151. </view>
  152. <view class="list-view-title"> <view class="list-view-h1">额外说明:</view> </view>
  153. <view class="remarks-textarea">
  154. <textarea
  155. class="textarea"
  156. v-model="remarksParams.extra"
  157. value=""
  158. placeholder="请输入其他需要说明的内容"
  159. maxlength="200"
  160. @input="conInput"
  161. />
  162. <text class="limit-text">{{ min }}/{{ max }}</text>
  163. </view>
  164. <view class="list-view-title">
  165. <view class="list-view-h1">上传图片</view>
  166. <view class="list-view-p">(可上传与客户的聊天截图或其他重要图片资料,最多10张)</view>
  167. </view>
  168. <view class="list-view-upload clearfix">
  169. <view class="photo-item" v-for="(image, imageIndex) in remarksParams.imageList" :key="imageIndex">
  170. <image
  171. :src="image"
  172. mode="aspectFill"
  173. @click.stop="previewImg(remarksParams.imageList, imageIndex)"
  174. ></image>
  175. <text
  176. class="iconfont icon-iconfontguanbi"
  177. @click.stop="deletePhotoFn(remarksParams.imageList, imageIndex)"
  178. ></text>
  179. </view>
  180. <view
  181. class="photo-item add"
  182. @click.stop="uploadPhotoFn(remarksParams.imageList)"
  183. v-if="remarksParams.imageList.length < 10 || remarksParams.imageList.length == 0"
  184. >
  185. <text class="iconfont icon-jiahao"></text>
  186. </view>
  187. </view>
  188. <view class="list-view-title">
  189. <view class="list-view-h1">上传文件</view>
  190. <view class="list-view-p">(可上传与客户相关的文件资料,最多10份,支持word,excel,ppt和pdf格式文件)</view>
  191. </view>
  192. <view class="list-view" v-for="(file, fileIndex) in remarksParams.fileList" :key="fileIndex">
  193. <view class="list-view-text">
  194. <view class="input">{{ file.fileName }}</view>
  195. <view class="delbtn" @click.stop="deleteFileFn(remarksParams.fileList, fileIndex)">删除</view>
  196. </view>
  197. </view>
  198. <view class="list-view">
  199. <view class="list-view-file" @click="uploadFile(remarksParams.fileList)">选择文件</view>
  200. </view>
  201. </view>
  202. <view class="remarks-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
  203. <view class="edit-button" @click="editButtonConfim">确定</view>
  204. </view>
  205. </view>
  206. </template>
  207. <script>
  208. import { mapState, mapMutations } from 'vuex'
  209. import authorize from '@/common/config/authorize.js'
  210. import { uploadFileImage, uploadFilePdfDocDocxXlsx } from '@/services/public.js'
  211. var isPreviewImg
  212. export default {
  213. data() {
  214. return {
  215. hideButton: true,
  216. isIphoneX: this.$store.state.isIphoneX,
  217. shopOrderId: 0,
  218. logisticsBatchId: 0,
  219. productActions: [],
  220. remarksParams: {
  221. clubId: 0,
  222. questionMan: '',
  223. extra: '',
  224. fileList: [],
  225. imageList: [],
  226. serviceProviderId: 0,
  227. consult: ''
  228. },
  229. min: 0,
  230. max: 200,
  231. handleType: '',
  232. clubUserId: 0,
  233. clubInfo: {},
  234. userInfo: {},
  235. checkedCategorysList: [],
  236. categorys: [],
  237. isConfirmLoding: false,
  238. priceFlagText: '',
  239. intenFlagText: '',
  240. followStateText: '',
  241. priceActions: [
  242. { name: '敏感', value: 1 },
  243. { name: '适中', value: 2 },
  244. { name: '不敏感', value: 3 },
  245. { name: '不明确', value: 4 }
  246. ],
  247. intenActions: [
  248. { name: '意向强烈', value: 1 },
  249. { name: '意向一般', value: 2 },
  250. { name: '意向平淡', value: 3 },
  251. { name: '随便看看', value: 4 }
  252. ],
  253. stateActions: [{ name: '跟进中', value: 1 }, { name: '跟进完成', value: 2 }, { name: '已放弃', value: 3 }],
  254. logisticsList: [
  255. {
  256. label: '',
  257. number: '',
  258. value: '',
  259. isAssociation:false
  260. }
  261. ],
  262. checkRemarkIndex:0,
  263. assActionList: [
  264. { name: '氨基酸的骄傲是件大事' },
  265. { name: '11111111111111' },
  266. { name: '22222222222' },
  267. { name: '33333333333333333' },
  268. { name: '4444444444444' },
  269. { name: '5555555' },
  270. { name: '6666666' },
  271. { name: '77777777' },
  272. { name: '88888888' },
  273. { name: '89999999' },
  274. { name: '101010101010' },
  275. { name: '11111111111111' },
  276. { name: '32432342342' },
  277. { name: 'sdfsdfsdfsdfs' },
  278. { name: '峰大厦水电费水电费' }
  279. ]
  280. }
  281. },
  282. onLoad(option) {
  283. console.log(option)
  284. if (option.type == 'edit') {
  285. this.getUserClubConsults()
  286. this.getUserClubRemarksDetail(option.remarksId)
  287. this.handleType = option.type
  288. uni.setNavigationBarTitle({ title: '修改记录' })
  289. } else {
  290. this.clubUserId = option.userId
  291. this.getCulbInfo()
  292. this.getUserClubConsults()
  293. }
  294. },
  295. methods: {
  296. ...mapMutations(['login']),
  297. getCulbInfo() {
  298. // 查询机构信息
  299. this.UserService.OrganizationUpdateModifyInfo({ userId: this.clubUserId })
  300. .then(response => {
  301. this.clubInfo = response.data.club
  302. this.userInfo = response.data.user
  303. this.remarksParams.clubId = this.clubInfo.clubId
  304. if (this.handleType != 'edit') {
  305. this.remarksParams.questionMan = this.clubInfo.linkMan
  306. }
  307. })
  308. .catch(error => {
  309. console.log('=============>', error.msg)
  310. })
  311. },
  312. getUserClubRemarksDetail(remarksId) {
  313. //修改回显资料备注信息
  314. this.UserService.getUserClubRemarksDetail({
  315. remarksId: remarksId
  316. })
  317. .then(response => {
  318. let data = response.data
  319. this.clubUserId = data.userId
  320. this.remarksParams.remarks = data.remarks.join(',')
  321. this.remarksParams.remarksId = data.remarksId
  322. this.remarksParams.fileList = data.fileList
  323. this.remarksParams.imageList = data.imageList
  324. if (this.handleType == 'edit') {
  325. this.remarksParams.questionMan = data.questionMan
  326. this.remarksParams.consult = data.consult
  327. this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
  328. this.categorys = this.categorys.map((el, index) => {
  329. if (data.consult.includes(el.id)) {
  330. el.isChecked = true
  331. } else {
  332. el.isChecked = false
  333. }
  334. return el
  335. })
  336. }
  337. this.getCulbInfo()
  338. })
  339. .catch(error => {
  340. this.$util.msg(error.msg, 2000)
  341. })
  342. },
  343. getUserClubConsults() {
  344. //查询咨询类别
  345. this.UserService.getUserClubConsults()
  346. .then(response => {
  347. this.categorys = response.data.map((el, index) => {
  348. el.isChecked = false
  349. return el
  350. })
  351. })
  352. .catch(error => {
  353. console.log('=========>获取咨询类别列表失败')
  354. })
  355. },
  356. bindRemarkAction(index, event) {
  357. this.checkRemarkIndex = index
  358. if (event.detail.value != '') {
  359. this.logisticsList[index].isAssociation = true
  360. // this.UserService.getCmremarkslist({remarks : event.detail.value}).then(response => {
  361. // if(response.data&&response.data.length>0){
  362. // this.assActionList = response.data
  363. // this.isAssociation = true
  364. // }else{
  365. // this.assActionList = []
  366. // this.isAssociation = false
  367. // }
  368. // })
  369. // .catch(error => {
  370. // console.log('=========>获取咨询类别列表失败')
  371. // })
  372. } else {
  373. this.logisticsList[index].isAssociation = false
  374. }
  375. },
  376. SelectAssociationFn(ass,item) {
  377. //选择关键词
  378. item.isAssociation = false
  379. item.label = ass
  380. },
  381. addListFn() {
  382. //添加
  383. this.isShowRemarks = false
  384. let obj = { label: '', number: '', value: '',isAssociation:false}
  385. this.logisticsList.push(obj)
  386. },
  387. deleteLogistItemFn(item, index) {
  388. this.logisticsList.splice(index, 1)
  389. },
  390. bindPickerChange(type, e) {
  391. //选择筛选条件
  392. switch (type) {
  393. case 1:
  394. this.priceFlagText = this.priceActions[e.target.value].name
  395. this.listQuery.validFlag = this.statusActions[e.target.value].value
  396. break
  397. case 2:
  398. this.intenFlagText = this.intenActions[e.target.value].name
  399. this.listQuery.featuredFlag = this.recommendActions[e.target.value].value
  400. break
  401. case 3:
  402. this.followStateText = this.stateActions[e.target.value].name
  403. this.listQuery.bigTypeId = this.classificationFirstList[e.target.value].value
  404. this.GetPrimarySecondaryClassification(this.listQuery.bigTypeId)
  405. break
  406. }
  407. },
  408. async editButtonConfim() {
  409. //保存资料备注
  410. if (this.isConfirmLoding) {
  411. return
  412. }
  413. const userInfo = await this.$api.getStorage()
  414. if (this.remarksParams.questionMan == '') {
  415. this.$util.msg('请输入咨询人姓名', 2000)
  416. return
  417. }
  418. if (this.remarksParams.consult == '') {
  419. this.$util.msg('请选择咨询类别', 2000)
  420. return
  421. }
  422. if (this.remarksParams.remarks == '') {
  423. this.$util.msg('请输入关键词记录', 2000)
  424. return
  425. }
  426. this.remarksParams.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
  427. this.isConfirmLoding = true
  428. this.UserService.getUserClubRemarksSave({
  429. params: JSON.stringify(this.remarksParams)
  430. })
  431. .then(response => {
  432. this.$util.msg('保存成功', 3000, true, 'success')
  433. this.isConfirmLoding = false
  434. setTimeout(() => {
  435. uni.navigateBack({
  436. delta: 1
  437. })
  438. }, 1000)
  439. })
  440. .catch(error => {
  441. this.$util.msg(error.msg, 2000)
  442. this.isConfirmLoding = false
  443. })
  444. },
  445. choiceCategorys(category, index) {
  446. // 选择类别
  447. category.isChecked = !category.isChecked
  448. if (category.isChecked) {
  449. if (!this.contains(this.checkedCategorysList, category.id)) {
  450. this.checkedCategorysList.push(category.id)
  451. }
  452. } else {
  453. this.checkedCategorysList.splice(this.checkedCategorysList.indexOf(category.id), 1)
  454. }
  455. this.remarksParams.consult = this.checkedCategorysList.join(',')
  456. },
  457. contains(arr, val) {
  458. // 校验
  459. return arr.some(item => item === val)
  460. },
  461. uploadFile(array) {
  462. //上传资质文件
  463. console.log(array)
  464. uploadFilePdfDocDocxXlsx()
  465. .then(res => {
  466. let data = JSON.parse(res.data).data
  467. let obj = {
  468. fileName: uni.getStorageSync('fileName'),
  469. ossName: data.ossName
  470. }
  471. array.push(obj)
  472. console.log('array', array)
  473. })
  474. .catch(err => {
  475. console.log(err)
  476. })
  477. },
  478. uploadPhotoFn(array) {
  479. //添加图片
  480. uploadFileImage().then(res => {
  481. array.push(JSON.parse(res.data).data)
  482. })
  483. },
  484. deleteFileFn(array, index) {
  485. console.log(array)
  486. //删除文件
  487. this.UploadService.PostFileDelete({
  488. ossName: array[index].ossName
  489. })
  490. .then(res => {
  491. array.splice(index, 1)
  492. })
  493. .catch(error => {
  494. console.log('删除文件异常提示===>', error.msg)
  495. })
  496. },
  497. deletePhotoFn(array, index) {
  498. //删除图片
  499. array.splice(index, 1)
  500. },
  501. previewImg(image, index) {
  502. //顶部商品图片预览
  503. isPreviewImg = true
  504. let previewUrls = image
  505. uni.previewImage({
  506. current: index, //图片索引
  507. urls: previewUrls, //必须是http图片,本地图片无效
  508. longPressActions: ''
  509. })
  510. },
  511. conInput(e) {
  512. //备注文字字数限制
  513. let value = e.detail.value
  514. let len = parseInt(value.length)
  515. if (len > this.max) return
  516. this.min = len
  517. if (this.min == 200) {
  518. this.$util.msg('您输入的字数已达上限', 2000)
  519. }
  520. },
  521. handleClickClunInfo() {
  522. //修改机构资料
  523. if (this.userInfo.userIdentity === 2) {
  524. this.$api.navigateTo(`/pages/seller/login/apply?userID=${this.userInfo.userId}`)
  525. } else if (this.userInfo.userIdentity === 4) {
  526. this.$api.navigateTo(`/pages/seller/login/information?userID=${this.userInfo.userId}`)
  527. }
  528. }
  529. },
  530. onShow() {}
  531. }
  532. </script>
  533. <style lang="scss">
  534. page {
  535. height: auto;
  536. background: #ffffff;
  537. }
  538. .remarks-content-club {
  539. width: 100%;
  540. height: 252rpx;
  541. padding: 24rpx;
  542. box-sizing: border-box;
  543. border-bottom: 20rpx solid #f7f7f7;
  544. .content-club-le {
  545. width: 660rpx;
  546. float: left;
  547. .club-le-text {
  548. width: 100%;
  549. height: 60rpx;
  550. line-height: 60rpx;
  551. font-size: $font-size-28;
  552. color: #333333;
  553. .label {
  554. color: #999999;
  555. &.phone {
  556. margin-left: 48rpx;
  557. }
  558. }
  559. }
  560. }
  561. .content-club-ri {
  562. width: 40rpx;
  563. height: 160rpx;
  564. float: right;
  565. line-height: 160rpx;
  566. text-align: center;
  567. color: #b2b2b2;
  568. }
  569. }
  570. .remarks-content {
  571. width: 100%;
  572. height: auto;
  573. box-sizing: border-box;
  574. padding: 0 24rpx;
  575. padding-bottom: 160rpx;
  576. .list-view-title {
  577. width: 100%;
  578. height: auto;
  579. margin-bottom: 16rpx;
  580. margin-top: 40rpx;
  581. .list-view-h1 {
  582. line-height: 40rpx;
  583. font-size: $font-size-28;
  584. color: #333333;
  585. text-align: left;
  586. text {
  587. color: #ff2a2a;
  588. }
  589. }
  590. .list-view-p {
  591. line-height: 30rpx;
  592. color: #fea785;
  593. font-size: $font-size-20;
  594. }
  595. }
  596. .list-view-radio {
  597. width: 100%;
  598. height: 90rpx;
  599. box-sizing: border-box;
  600. padding: 0 10rpx;
  601. border: 1px solid #b2b2b2;
  602. border-radius: 6rpx;
  603. margin-bottom: 30rpx;
  604. position: relative;
  605. &.btn {
  606. border: none;
  607. margin-top: 40rpx;
  608. }
  609. .input {
  610. width: 100%;
  611. height: 90rpx;
  612. line-height: 90rpx;
  613. float: left;
  614. box-sizing: border-box;
  615. font-size: $font-size-24;
  616. color: #333333;
  617. padding: 0 10rpx;
  618. padding-right: 90rpx;
  619. }
  620. .iconfont {
  621. width: 50rpx;
  622. height: 90rpx;
  623. display: block;
  624. line-height: 90rpx;
  625. text-align: center;
  626. font-size: 30rpx;
  627. color: #999999;
  628. position: absolute;
  629. right: 0;
  630. top: 0;
  631. }
  632. }
  633. .list-view-list-main {
  634. width: 100%;
  635. height: auto;
  636. box-sizing: border-box;
  637. margin-bottom: 30rpx;
  638. position: relative;
  639. .list-view-list {
  640. width: 100%;
  641. height: 90rpx;
  642. box-sizing: border-box;
  643. margin-bottom: 30rpx;
  644. .list-view-input {
  645. width: 614rpx;
  646. height: 90rpx;
  647. float: left;
  648. position: relative;
  649. .input {
  650. width: 614rpx;
  651. height: 90rpx;
  652. box-sizing: border-box;
  653. padding: 0 20rpx;
  654. border: 1px solid #b2b2b2;
  655. border-radius: 6rpx;
  656. font-size: $font-size-24;
  657. color: #333333;
  658. }
  659. .list-view-assAction {
  660. width: 614rpx;
  661. height: 560rpx;
  662. box-sizing: border-box;
  663. padding: 10rpx 0;
  664. background: rgba(255, 255, 255, 1);
  665. box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.15);
  666. border-radius: 6rpx;
  667. position: absolute;
  668. top: -540rpx;
  669. left: 0;
  670. z-index: 999;
  671. overflow: hidden;
  672. .tui-popup-scroll {
  673. width: 100%;
  674. height: 540rpx;
  675. }
  676. .ass-list {
  677. width: 100%;
  678. height: 90rpx;
  679. box-sizing: border-box;
  680. padding: 0 24rpx;
  681. line-height: 90rpx;
  682. font-size: $font-size-26;
  683. color: #666666;
  684. text-align: left;
  685. border-bottom: 1px solid #e1e1e1;
  686. &:last-child{
  687. border-bottom: none;
  688. }
  689. }
  690. }
  691. }
  692. .list-view-btn {
  693. width: 88rpx;
  694. height: 90rpx;
  695. float: right;
  696. text-align: center;
  697. line-height: 90rpx;
  698. .icon-zengjia {
  699. color: #1890f9;
  700. font-size: $font-size-48;
  701. }
  702. .icon-shanchu4 {
  703. color: #e15616;
  704. font-size: $font-size-48;
  705. }
  706. }
  707. }
  708. }
  709. .remarks-category {
  710. width: 100%;
  711. float: left;
  712. .checkbox-list {
  713. height: 60rpx;
  714. font-size: $font-size-28;
  715. line-height: 60rpx;
  716. border-radius: 10rpx;
  717. margin-right: 20rpx;
  718. margin-bottom: 10rpx;
  719. box-sizing: border-box;
  720. float: left;
  721. .icon-yixuanze {
  722. margin-right: 10rpx;
  723. color: #e15616;
  724. }
  725. .icon-weixuanze {
  726. margin-right: 10rpx;
  727. color: #b2b2b2;
  728. }
  729. }
  730. .item-text {
  731. display: inline-block;
  732. font-size: 26rpx;
  733. color: #333333;
  734. border-radius: 28rpx;
  735. line-height: 50rpx;
  736. }
  737. }
  738. .remarks-input {
  739. width: 100%;
  740. height: 90rpx;
  741. padding: 0 16rpx;
  742. margin: 20rpx 0 0 0;
  743. border-radius: 6rpx;
  744. position: relative;
  745. border: 1px solid #b2b2b2;
  746. box-sizing: border-box;
  747. .input {
  748. width: 100%;
  749. height: 90rpx;
  750. line-height: 90rpx;
  751. font-size: $font-size-26;
  752. color: $text-color;
  753. z-index: 1;
  754. }
  755. }
  756. .remarks-textarea {
  757. width: 100%;
  758. height: 226rpx;
  759. padding: 16rpx;
  760. margin: 20rpx 0 0 0;
  761. border-radius: 6rpx;
  762. position: relative;
  763. border: 1px solid #b2b2b2;
  764. box-sizing: border-box;
  765. .textarea {
  766. width: 100%;
  767. height: 100%;
  768. line-height: 36rpx;
  769. font-size: $font-size-26;
  770. color: $text-color;
  771. z-index: 1;
  772. }
  773. .limit-text {
  774. position: absolute;
  775. right: 20rpx;
  776. bottom: 16rpx;
  777. line-height: 44rpx;
  778. font-size: $font-size-24;
  779. color: #b2b2b2;
  780. }
  781. }
  782. .list-view {
  783. width: 100%;
  784. height: 40rpx;
  785. margin-top: 20rpx;
  786. .list-view-file {
  787. width: 132rpx;
  788. height: 44rpx;
  789. line-height: 44rpx;
  790. font-size: $font-size-20;
  791. text-align: center;
  792. color: #ffffff;
  793. background-color: $color-system;
  794. border-radius: 8rpx;
  795. float: left;
  796. margin-top: 10rpx;
  797. }
  798. .list-view-text {
  799. width: 100%;
  800. float: left;
  801. .input {
  802. width: 560rpx;
  803. height: 44rpx;
  804. box-sizing: border-box;
  805. line-height: 44rpx;
  806. color: #333333;
  807. text-overflow: ellipsis;
  808. overflow: hidden;
  809. display: -webkit-box;
  810. -webkit-line-clamp: 1;
  811. line-clamp: 1;
  812. -webkit-box-orient: vertical;
  813. float: left;
  814. }
  815. .delbtn {
  816. width: 96rpx;
  817. height: 44rpx;
  818. border-radius: 8rpx;
  819. background-color: #fff2ec;
  820. font-size: $font-size-24;
  821. color: #e15616;
  822. line-height: 44rpx;
  823. text-align: center;
  824. float: left;
  825. }
  826. }
  827. }
  828. .list-view-upload {
  829. width: 100%;
  830. height: auto;
  831. .photo-item {
  832. display: inline-block;
  833. width: 112rpx;
  834. height: 112rpx;
  835. margin: 10rpx 0;
  836. margin-right: 25rpx;
  837. border-radius: 10rpx;
  838. border: 1px solid #f5f5f5;
  839. position: relative;
  840. float: left;
  841. &.add {
  842. width: 112rpx;
  843. height: 112rpx;
  844. border-color: #b2b2b2;
  845. text-align: center;
  846. line-height: 112rpx;
  847. margin-right: 0rpx;
  848. .icon-jiahao {
  849. font-size: $font-size-44;
  850. color: #b2b2b2;
  851. font-weight: bold;
  852. }
  853. }
  854. .icon-iconfontguanbi {
  855. width: 30rpx;
  856. height: 30rpx;
  857. border-radius: 50%;
  858. display: block;
  859. position: absolute;
  860. right: -10rpx;
  861. top: -10rpx;
  862. background: #f94b4b;
  863. text-align: center;
  864. line-height: 30rpx;
  865. color: #ffffff;
  866. font-size: $font-size-22;
  867. }
  868. image {
  869. width: 112rpx;
  870. height: 112rpx;
  871. border-radius: 10rpx;
  872. }
  873. }
  874. .photo-list {
  875. width: 100%;
  876. height: 116rpx;
  877. overflow: hidden;
  878. white-space: nowrap;
  879. display: flex;
  880. align-items: flex-start;
  881. }
  882. }
  883. }
  884. .remarks-btn {
  885. width: 100%;
  886. padding-top: 20rpx;
  887. position: fixed;
  888. bottom: 0;
  889. left: 0;
  890. background-color: #ffffff;
  891. .edit-button-canel {
  892. width: 100%;
  893. height: 88rpx;
  894. line-height: 88rpx;
  895. text-align: center;
  896. color: #e15616;
  897. font-size: $font-size-24;
  898. }
  899. .edit-button {
  900. width: 600rpx;
  901. height: 90rpx;
  902. background: $btn-confirm;
  903. line-height: 90rpx;
  904. text-align: center;
  905. color: #ffffff;
  906. font-size: $font-size-30;
  907. margin: 0 auto;
  908. border-radius: 45rpx;
  909. }
  910. }
  911. </style>