knowledgeLibrary.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. <template>
  2. <div>
  3. <!-- 留言知识库 -->
  4. <div v-if="!flag">
  5. <div class="header row item-center allAlignment">
  6. <!-- 返回按钮 -->
  7. <div style="height:100%;" @click="returnIndex" class="row item-center">
  8. <img src="@/assets/return.png" style="height:.35rem;width:.35rem"/>
  9. </div>
  10. <div>留言知识库</div>
  11. <div></div>
  12. </div>
  13. <div class="serch row allAlignment">
  14. <!-- 时间选择 -->
  15. <div class="serchLeft">
  16. <yd-accordion>
  17. <yd-accordion-item :title="serchLeftClick" id="lists">
  18. <ul>
  19. <li
  20. class="row center list"
  21. v-for="(item,index) in options"
  22. :key="index"
  23. @click="serchLeftClick = item.label,getList(item.value)"
  24. >
  25. <p :class="serchLeftClick == item.label?'active':''">{{item.label}}</p>
  26. </li>
  27. </ul>
  28. </yd-accordion-item>
  29. </yd-accordion>
  30. </div>
  31. <!-- 搜索框 -->
  32. <div class="serchBox row item-center">
  33. <input type="text" v-model="serchInputValue" placeholder="请输入关键词"/>
  34. <p style="padding:.22rem .2rem" @click="serchClick">
  35. <img src="@/assets/serchImg.png" style="width:.24rem;height:.24rem;"/>
  36. </p>
  37. </div>
  38. </div>
  39. <div class="main">
  40. <div class="main-title row allAlignment bottomAlignment">
  41. <div
  42. v-for="(item) in typeList" :key="item.id"
  43. class="main-title-list row center"
  44. :class="mainTitle== item.name?'active':''"
  45. @click="mainTitle = item.name,getAjax(1)"
  46. >{{item.name}}
  47. </div>
  48. </div>
  49. <div class="main-box">
  50. <yd-accordion v-for="(item,index) in listData" :key="index">
  51. <yd-accordion-item v-if="item.type_name == mainTitle" :title="item.content">
  52. <div slot="txt" style="color:#999;font-size:.24rem;">{{item.add_time}}</div>
  53. <div style="color:#555;" class="chatContent">
  54. <div class="text">
  55. {{item.content}}
  56. </div>
  57. <ul class="imgs" v-if="item.image" >
  58. <li v-for="i in item.image">
  59. <img :src="url + i" alt="">
  60. </li>
  61. </ul>
  62. <p class="reply_title">回复的留言</p>
  63. <ul class="imgs" v-if="item.images">
  64. <li v-for="j in item.images">
  65. <img :src="url + j" alt="">
  66. </li>
  67. </ul>
  68. <div class="reply_text">
  69. {{item.reply_content}}
  70. </div>
  71. </div>
  72. </yd-accordion-item>
  73. </yd-accordion>
  74. </div>
  75. </div>
  76. <div class="main-bottom row center" @click="flag = true">发起留言</div>
  77. </div>
  78. <!-- 留言模块 -->
  79. <div v-if="flag">
  80. <div class="leave">
  81. <div class="leave-header row item-center allAlignment">
  82. <p>我要留言</p>
  83. <img
  84. style="width:.3rem;height:.3rem;"
  85. @click="flag = false"
  86. :src="require('@/assets/Service4.png')"
  87. />
  88. </div>
  89. <div class="leave-main">
  90. <div>
  91. <span style="color:#666;">
  92. 您的称呼
  93. <i style="color:#F04992">*</i>
  94. </span>
  95. <b style="color:#F04992">{{formText.call}}</b>
  96. <br/>
  97. <input type="text" @focus="leave.call = ''" @blur="leave.call ? '': formText.call = '称呼不能为空' "
  98. v-model="leave.call"/>
  99. </div>
  100. <div>
  101. <span style="color:#666;">
  102. 您的手机号
  103. </span>
  104. <b style="color:#F04992">{{formText.phone}}</b>
  105. <br/>
  106. <input type="text" @focus="formText.phone = ''" @blur="phoneBlur()" v-model="leave.phone"/>
  107. </div>
  108. <div>
  109. <span style="color:#666;">
  110. 您的邮箱地址
  111. <!-- <i style="color:#F04992">*</i>-->
  112. </span>
  113. <b style="color:#F04992">{{formText.email}}</b>
  114. <br/>
  115. <input type="email" v-model="leave.email"/>
  116. </div>
  117. <p>
  118. <span style="color:#666;">
  119. 您的留言信息
  120. <i style="color:#F04992">*</i>
  121. </span>
  122. <b style="color:#F04992">{{formText.describe}}</b>
  123. <br/>
  124. <textarea class="leave-main-txt" v-model="leave.describe" @focus="leave.describe = ''"
  125. @blur="leave.describe ? '': formText.describe = '留言内容不能为空'"
  126. style="margin-top:.1rem;width:100%;height:1.6rem"></textarea>
  127. </p>
  128. <div style="height:2.2rem;margin-top:.3rem;overflow-x: hidden;overflow-y: auto;">
  129. <span style="color:#666;">
  130. 您的图片预览
  131. <i style="color:#F04992">*</i>
  132. </span>
  133. <b style="color:#F04992">(单次最多4张图片)</b>
  134. <br/>
  135. <section class="imgMsg row item-center" style="margin-bottom:.1rem;">
  136. <div
  137. style="height:100%;"
  138. :style="imgSrcList.length==4?'width:100%;':''"
  139. class="row allAlignment"
  140. >
  141. <div
  142. class="row center"
  143. style="width:1.4rem;height:1.4rem"
  144. v-for="(item,index) in imgSrcList"
  145. :key="index"
  146. >
  147. <img
  148. @click="leaveImgDel(index)"
  149. style="max-height:1.2rem;max-width:1.2rem;"
  150. :src="item.src"
  151. />
  152. </div>
  153. </div>
  154. <input
  155. type="file"
  156. accept="image/jpeg, image/jpg, image/png, image/svg"
  157. id="fileBtn"
  158. @change="leaveFile($event)"
  159. style="display:none;"
  160. />
  161. <label
  162. v-if="imgSrcList.length<4"
  163. for="fileBtn"
  164. class="row center"
  165. style="width:.8rem;height:.8rem;border:.02rem solid #ccc;border-radius: .1rem;background:#fff;color:#999;font-size:.5rem;margin-left:.3rem"
  166. >+</label>
  167. </section>
  168. </div>
  169. <input type="file" id="fileBtn" @change="leaveFile($event)" style="display:none;"/>
  170. <label
  171. for="fileBtn"
  172. class="row center"
  173. style="width:100%;height:.8rem;border:.01rem solid #ddd;border-radius: .1rem;background:#fff;color:#999;"
  174. >上传图片</label>
  175. <button
  176. style="background:linear-gradient(90deg,rgba(22,84,209,1) 0%,rgba(9,52,173,1) 100%);box-shadow:0 .03rem .03rem rgba(0,0,0,0.2);border-radius:.1rem;height:1rem;width:100%;border:none;font-size:.34rem;color:#fff;margin-top:.17rem;"
  177. @click="leaveSubmit"
  178. >提交留言
  179. </button>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </template>
  185. <script>
  186. export default {
  187. name: "knowledgeLibrary",
  188. data() {
  189. return {
  190. listData: [],//留言数据
  191. flag: false, //留言和知识库开关
  192. options: [
  193. {
  194. value: "week",
  195. label: "最近一周"
  196. },
  197. {
  198. value: "oneMonth",
  199. label: "最近一个月"
  200. },
  201. {
  202. value: "threeMonth",
  203. label: "最近三个月"
  204. }
  205. ],
  206. typeList: '',//留言知识库类型
  207. serchLeftClick: "最近一周", //时间选择开关
  208. mainTitle: "充值", // 留言知识库开关
  209. //用户留言信息
  210. leave: {
  211. call: "", //称呼
  212. phone: "", //手机号
  213. email: "", //邮箱
  214. describe: "", //留言描述问题
  215. imgArr: [],// 上传的图片地址
  216. },
  217. formText: { //表单验证错误提示
  218. phone: '',
  219. email: '',
  220. describe: '',
  221. call: '',
  222. },
  223. imgSrcList: [], //上传图片列表
  224. serchInputValue: "", //搜索输入框的值
  225. setImgList: [],//上传图片
  226. valTime:"week",
  227. pages: 1,
  228. imgs: [],
  229. imgss: [],
  230. url: 'http://kfadmin.bocai186.com', // 域名地址
  231. // url: 'http://192.168.2.187:8090', // 域名地址
  232. fileList:[],
  233. filesImg:'',
  234. showImg:false,
  235. showImgs:false,
  236. };
  237. },
  238. props: ["currentTime"],
  239. methods: {
  240. // 设置apiToken
  241. setApiToken(name, controller, time, modules) {
  242. let txetVal = name + "customer-service" + controller + time + modules;
  243. // let sssd = txetVal.toLowerCase();
  244. // console.log(sssd);
  245. return this.$md5(txetVal.toLowerCase());
  246. },
  247. // 返回上级 子传父
  248. returnIndex() {
  249. this.$emit("returnIndex", false);
  250. },
  251. /*******************************************/
  252. // 留言图片删除
  253. leaveImgDel(i) {
  254. this.$dialog.confirm({
  255. title: "删除图片",
  256. mes: "你确定要删除吗?",
  257. opts: () => {
  258. this.imgSrcList.splice(i, 1);
  259. }
  260. });
  261. },
  262. /*******************************************/
  263. // 用户留言上传图片
  264. leaveFile(e) {
  265. let self = this;
  266. let files = e.target.files || e.dataTransfer.files;
  267. if (!files.length) return;
  268. let picavalue = files[0];
  269. const isLt1M = picavalue.size / 1024 / 1024 < 0.5;
  270. if (!isLt1M) {
  271. this.$dialog.toast({mes: '上传的图片不能大于0.5MB', timeout: 1500});
  272. return
  273. }
  274. const isJPG = picavalue.type == 'image/jpeg' || 'image/jpg' || 'image/png' || 'image/svg';
  275. if (!isJPG) {
  276. this.$dialog.toast({mes: '上传只能是图片格式!', timeout: 1500});
  277. return
  278. }
  279. let _this = this;
  280. let name = picavalue.name.split('.')[0]
  281. let reader = new FileReader();
  282. //将图片转成base64格式
  283. reader.readAsDataURL(picavalue);
  284. //读取成功后的回调
  285. reader.onloadend = function() {
  286. let result = this.result;
  287. _this.$set(picavalue,'src', result);
  288. _this.imgSrcList.push(picavalue);
  289. // console.log(_this.imgSrcList,'读取')
  290. _this.$forceUpdate();
  291. };
  292. },
  293. // 获取选择内容
  294. getList(val){
  295. this.valTime = val;
  296. let a = document.querySelector("#lists .yd-accordion-content")
  297. a.style.height = 0 +"px";
  298. },
  299. // 留言知识库数据获取
  300. getAjax(page, size = 999) {
  301. this.imgs = []
  302. let obj = {
  303. headers: {
  304. apiToken: this.setApiToken("index", "message", this.currentTime[0], "index")
  305. }
  306. };
  307. this.post("api/index/Message/index", {
  308. time: this.valTime,
  309. key: this.serchInputValue,
  310. type: this.mainTitle,
  311. pageSize:size,
  312. pageNumber:page
  313. },
  314. obj
  315. ).then(res => {
  316. if (res.data.status == 1) {
  317. this.listData = res.data.data.list;
  318. this.pages = res.data.data.total;
  319. // console.log(this.listData)
  320. let _img;
  321. let _imgs;
  322. for (let i = 0; i < res.data.data.list.length; i++) {
  323. if(res.data.data.list[i].image){
  324. _img = res.data.data.list[i].image.split(",");
  325. res.data.data.list[i].image = _img;
  326. }
  327. if(res.data.data.list[i].images){
  328. _imgs = res.data.data.list[i].images.split(",");
  329. res.data.data.list[i].images = _imgs;
  330. }
  331. // console.log(res.data.data.list[i],"图片")
  332. }
  333. if (this.listData.length == 0) {
  334. this.$dialog.toast({mes: '当前没有你要的内容,请发起留言', timeout: 1500});
  335. }
  336. }
  337. });
  338. },
  339. // 留言知识库类型获取
  340. getAjaxType() {
  341. let obj = {
  342. headers: {
  343. apiToken: this.setApiToken("type", "message", this.currentTime[0], "index")
  344. }
  345. }
  346. this.post('api/index/Message/type', {}, obj).then((res) => {
  347. if (res.data.status == 1) {
  348. this.typeList = res.data.data;
  349. }
  350. })
  351. },
  352. // 留言信息提交
  353. leaveSubmit() {
  354. let uid = localStorage.getItem('uid');
  355. if (this.leave.call == '') {
  356. this.$dialog.toast({mes: '请填写称呼', timeout: 1500});
  357. } else if (this.leave.describe == '') {
  358. this.$dialog.toast({mes: '请填写留言信息!', timeout: 1500});
  359. } else {
  360. for (let i = 0; i < this.imgSrcList.length; i++) {
  361. var formData = new FormData();
  362. formData.append('file',this.imgSrcList[i])
  363. // 提交图片
  364. this.post('api/index/upload/uploadImg',formData).then((res) => {
  365. this.filesImg = this.filesImg ? this.filesImg + "," + res.data.data.src : res.data.data.src;
  366. })
  367. }
  368. if(this.imgSrcList.length >= 1){
  369. }
  370. // 提交表单
  371. setTimeout(()=>{
  372. let obj = {
  373. headers: {
  374. apiToken: this.setApiToken("LeavingMessage", "User", this.currentTime[0], "index")
  375. }
  376. }
  377. console.log(this.filesImg);
  378. let params = {
  379. 'nick_name': this.leave.call,
  380. 'email': this.leave.email,
  381. 'content': this.leave.describe,
  382. 'phone': this.leave.phone,
  383. 'file': this.filesImg,
  384. 'account_id': uid,
  385. }
  386. this.post('api/index/User/LeavingMessage', params, obj).then((res) => {
  387. if (res.data.code == 1) {
  388. this.$dialog.toast({mes: "留言成功", timeout: 1500});
  389. this.fileList =[];
  390. }
  391. })
  392. this.flag = false;
  393. },1000)
  394. }
  395. },
  396. // 搜索按钮被点击
  397. serchClick() {
  398. // 如果输入框的值存在就调用接口
  399. if (this.serchInputValue.length > 0) {
  400. this.getAjax(1)
  401. } else {
  402. this.serchInputValue = '';
  403. this.getAjax(1)
  404. this.$dialog.toast({mes: '请输入关键词再搜索', timeout: 1500});
  405. }
  406. },
  407. // 验证手机号
  408. phoneBlur() {
  409. if (!(/^1[3456789]\d{9}$/.test(this.leave.phone))) {
  410. this.leave.phone = ''
  411. this.formText.phone = "手机号码有误,请重填"
  412. }
  413. },
  414. // 验证邮箱
  415. // emailBlur(){
  416. // if(!(/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(this.leave.email))){
  417. // this.leave.email = ''
  418. // this.formText.email = "邮箱格式错误,请重填"
  419. // }
  420. // }
  421. },
  422. mounted() {
  423. this.getAjaxType()
  424. this.getAjax(1);
  425. }
  426. };
  427. </script>
  428. <style scoped>
  429. /* 留言知识库 */
  430. .header {
  431. height: 1rem;
  432. background: linear-gradient(
  433. 90deg,
  434. rgba(22, 84, 209, 1) 0%,
  435. rgba(9, 52, 173, 1) 100%
  436. );
  437. box-shadow: 0px 0.03rem 0.03rem rgba(0, 0, 0, 0.2);
  438. color: #fff;
  439. font-size: 0.34rem;
  440. padding: 0 0.3rem;
  441. }
  442. .serch {
  443. padding: 0.3rem;
  444. }
  445. .serchLeft {
  446. position: relative;
  447. width: 2.2rem;
  448. height: 0.8rem;
  449. }
  450. .serchLeft div /deep/ .yd-accordion-head {
  451. padding: 0.2rem;
  452. border: 0.02rem solid #ddd;
  453. border-radius: 0.1rem;
  454. height: 0.8rem;
  455. }
  456. .serchLeft div /deep/ .yd-accordion-title,
  457. .serchLeft div /deep/ .yd-accordion-head-arrow {
  458. display: flex;
  459. min-height: 0rem !important;
  460. align-items: center;
  461. font-size: 0.28rem;
  462. }
  463. .serchLeft div /deep/ .yd-accordion-head:after {
  464. display: none;
  465. }
  466. .serchLeft div /deep/ .yd-accordion-content:after {
  467. display: none;
  468. }
  469. .serchLeft div /deep/ .yd-accordion-head-arrow:after {
  470. width: 0.22rem;
  471. height: 0.22rem;
  472. background: url("../assets/bottom.png");
  473. background-size: 100% 100%;
  474. }
  475. .serchLeft div /deep/ .yd-accordion-head-arrow.yd-accordion-rotated:after {
  476. transform: rotate(180deg);
  477. }
  478. .serchLeft div /deep/ .yd-accordion-content {
  479. position: absolute;
  480. left: 0;
  481. top: 0.94rem;
  482. z-index: 99;
  483. border-radius: 0 0 0.1rem 0.1rem;
  484. }
  485. .list {
  486. width: 2.2rem;
  487. height: 0.6rem;
  488. background: #fff;
  489. padding: 0 0.2rem;
  490. }
  491. .list p {
  492. width: 100%;
  493. font-size: 0.26rem;
  494. text-align: center;
  495. border-bottom: 0.01rem solid #ddd;
  496. line-height: 0.6rem;
  497. }
  498. .list p.active {
  499. color: #5ea0f7;
  500. }
  501. .serchBox {
  502. width: 4.5rem;
  503. height: 0.8rem;
  504. border-radius: 0.1rem;
  505. background: #fff;
  506. border: 0.02rem solid #ddd;
  507. }
  508. .serchBox input {
  509. width: 100%;
  510. height: 100%;
  511. border: none;
  512. padding: 0.2rem;
  513. font-size: 0.28rem;
  514. color: #999;
  515. }
  516. .serchBox input:focus {
  517. color: #666;
  518. }
  519. .serchBox input::placeholder {
  520. color: #999;
  521. }
  522. .main {
  523. padding: 0 0.3rem;
  524. }
  525. .main-title {
  526. height: 0.8rem;
  527. background: #5ea0f7;
  528. color: #fff;
  529. border-radius: 0.1rem 0.1rem 0 0;
  530. padding: 0 0.1rem;
  531. }
  532. .main-title-list {
  533. width: 1.46rem;
  534. height: 0.7rem;
  535. border-radius: 0.1rem 0.1rem 0 0;
  536. font-size: 0.28rem;
  537. }
  538. .main-title-list.active {
  539. background: #fff;
  540. color: #5ea0f7;
  541. }
  542. .main {
  543. height: 68vh;
  544. }
  545. .main-box {
  546. height: 90%;
  547. overflow-x: hidden;
  548. overflow-y: auto;
  549. }
  550. .main-box div /deep/ .yd-accordion-head-content {
  551. justify-content: space-between;
  552. padding-right: 0.3rem;
  553. }
  554. .main-box div /deep/ .yd-accordion-title {
  555. max-width: 60%;
  556. color: #666;
  557. font-size: 0.26rem;
  558. }
  559. .main-box div /deep/ .yd-accordion-title span {
  560. display: inline-block;
  561. width: 100%;
  562. overflow: hidden;
  563. text-overflow: ellipsis;
  564. white-space: nowrap;
  565. }
  566. div /deep/ .yd-accordion-head-content {
  567. width: 80%;
  568. }
  569. div /deep/ .yd-accordion-content {
  570. border-radius: 0;
  571. }
  572. div /deep/ .yd-accordion {
  573. border-radius: 0;
  574. border-top: none;
  575. }
  576. div /deep/ .yd-accordion-head {
  577. border: 0.02rem solid #ddd;
  578. border-top: none;
  579. }
  580. .main-bottom {
  581. background: linear-gradient(
  582. 90deg,
  583. rgba(22, 84, 209, 1) 0%,
  584. rgba(9, 52, 173, 1) 100%
  585. );
  586. box-shadow: 0px 0.03rem 0.03rem rgba(0, 0, 0, 0.2);
  587. border-radius: 0.1rem;
  588. font-size: 0.34rem;
  589. color: #fff;
  590. height: 1rem;
  591. margin: 0.3rem;
  592. }
  593. .chatContent {
  594. background: #f5f5f5;
  595. border: 0.02rem solid #ddd;
  596. border-top: none;
  597. padding: 0.3rem 0.2rem;
  598. }
  599. .userPortrait {
  600. width: 1rem;
  601. height: 1rem;
  602. }
  603. .userPortrait img {
  604. width: 100%;
  605. height: 100%;
  606. }
  607. .contentsCenter {
  608. width: 69%;
  609. }
  610. .contents {
  611. margin-top: 0.3rem;
  612. }
  613. .txt {
  614. padding: 0.2rem;
  615. border-radius: 0.1rem;
  616. display: inline-block;
  617. font-size: 0.28rem;
  618. max-width: 92.5%;
  619. word-wrap: break-word;
  620. position: relative;
  621. }
  622. .left {
  623. color: #555;
  624. margin-left: 0.3rem;
  625. border: 0.01rem solid #dfdfdf;
  626. background: #fff;
  627. }
  628. .left::after {
  629. position: absolute;
  630. content: "";
  631. display: inline-block;
  632. left: -0.08rem;
  633. top: 0.2rem;
  634. width: 0.125rem;
  635. height: 0.2rem;
  636. background: #fff;
  637. transform: skewX(30deg);
  638. border-left: 0.02rem solid #dfdfdf;
  639. border-top: 0.02rem solid #dfdfdf;
  640. }
  641. .right {
  642. color: #fff;
  643. margin-right: 0.3rem;
  644. background: #5ea0f7;
  645. }
  646. .right::after {
  647. position: absolute;
  648. content: "";
  649. display: inline-block;
  650. right: -0.06rem;
  651. top: 0.2rem;
  652. width: 0.125rem;
  653. height: 0.2rem;
  654. background: #5ea0f7;
  655. transform: skewX(-30deg);
  656. }
  657. .system {
  658. font-size: 0.24rem;
  659. color: #bbb;
  660. margin-top: 0.3rem;
  661. }
  662. div /deep/ .yd-tab-nav .yd-tab-active:before {
  663. content: none;
  664. display: none;
  665. }
  666. /*
  667. *留言模块
  668. */
  669. .leave-header {
  670. height: 1rem;
  671. background: linear-gradient(
  672. 90deg,
  673. rgba(22, 84, 209, 1) 0%,
  674. rgba(9, 52, 173, 1) 100%
  675. );
  676. box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
  677. color: #fff;
  678. font-size: 0.34rem;
  679. padding: 0 0.3rem;
  680. }
  681. .leave-main {
  682. height: 10rem;
  683. background: #f5f5f5;
  684. font-size: 0.28rem;
  685. padding: 0.3rem 0.3rem 0.2rem 0.3rem;
  686. }
  687. .leave-main > div {
  688. height: 1.3rem;
  689. margin-bottom: 0.2rem;
  690. }
  691. .leave-main > div input {
  692. height: 0.8rem;
  693. border: 0.01rem solid #ddd;
  694. border-radius: 0.1rem;
  695. background: #fff;
  696. padding: 0.2rem;
  697. width: 100%;
  698. margin-top: 0.1rem;
  699. }
  700. .leave-main-txt {
  701. background: #fff;
  702. padding: 0.2rem;
  703. border: 0.01rem solid #ddd;
  704. border-radius: 0.1rem;
  705. }
  706. .imgMsg {
  707. height: 1.5rem;
  708. padding: 0 0.2rem;
  709. margin-top: 0.1rem;
  710. font-size: 0.24rem;
  711. background: #fff;
  712. border: 0.01rem solid #ddd;
  713. border-radius: 0.1rem;
  714. }
  715. .yd-cell-box {
  716. width: 60%;
  717. min-height: 1.2rem;
  718. border: none;
  719. padding-right: 0.3rem;
  720. padding-left: 0.3rem;
  721. }
  722. div /deep/ .yd-textarea > textarea {
  723. box-sizing: border-box;
  724. height: auto;
  725. min-height: 1.2rem;
  726. font-size: 0.28rem;
  727. padding-top: 0.4rem;
  728. }
  729. .yd-textarea {
  730. padding: 0;
  731. }
  732. .yd-cell-box {
  733. margin: 0;
  734. }
  735. .yd-cell-item {
  736. padding: 0;
  737. }
  738. div /deep/ .yd-cell:after {
  739. height: 0;
  740. }
  741. div /deep/ .yd-textarea-counter {
  742. display: none;
  743. }
  744. .imgs {
  745. margin: 20px 0;
  746. display: flex;
  747. justify-content: flex-start;
  748. }
  749. .imgs li {
  750. margin-right: 10px;
  751. width: 1rem;
  752. height: 1rem;
  753. }
  754. .imgs li img {
  755. width:1rem;
  756. height:1rem;
  757. }
  758. .reply_title {
  759. text-align: right;
  760. }
  761. .reply_text {
  762. margin-top: 10px;
  763. text-align: right;
  764. word-wrap:break-word;
  765. }
  766. .text {
  767. word-wrap:break-word;
  768. }
  769. </style>