FastReply.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. <template>
  2. <div class="row allAlignment" style=" position: relative;">
  3. <leftNav/>
  4. <div>
  5. <hader/>
  6. <messageCenter></messageCenter>
  7. <div>
  8. <el-container class="row">
  9. <!-- 私有库列表 -->
  10. <el-aside width="400px">
  11. <div class="tit">
  12. <span>私有库--快捷回复</span>
  13. </div>
  14. <!-- <div class="row library">
  15. <div class="line hover" @click="FastReplyLibrarySwitchClick(1)">
  16. <span :class="FastReplyLibrarySwitch==1?'acty':''">公有库</span>
  17. </div>
  18. <div class="hover" @click="FastReplyLibrarySwitchClick(2)">
  19. <span :class="FastReplyLibrarySwitch==2?'acty':''">私有库</span>
  20. </div>
  21. </div>
  22. <div class="search">
  23. <el-input placeholder="搜索快捷回复" suffix-icon="el-icon-search" v-model="leftSerch"></el-input>
  24. </div>
  25. <div class="phrases md20">
  26. <i class="el-icon-caret-bottom" style="color:#CCCCCC"></i>
  27. <span>常用语</span>
  28. </div> -->
  29. <div class="phrasesList md20">
  30. <!-- <div class="list row" v-for="(item) in ReplyArr" :key="item.id">
  31. <div style="width:100%;" class="row item-center allAlignment">
  32. <div>
  33. <span>#{{item.title}}</span>
  34. <span>{{item.content}}</span>
  35. </div>
  36. </div>
  37. </div> -->
  38. <!-- 私有库列表 -->
  39. <div class="list row" v-for="(item) in ReplyArr" :key="item.id">
  40. <div class="row item-center allAlignment">
  41. <div class="row">
  42. <span class="ellipsis"
  43. style="display:block;max-width:100px;">#{{item.title}}</span>
  44. <span
  45. class="ellipsis"
  46. style="display:block;max-width:150px;margin-left:20px;"
  47. >{{item.content}}</span>
  48. </div>
  49. <div class="fnc">
  50. <i class="el-icon-edit-outline hover" @click="popUpChange(item)"></i>
  51. <i class="el-icon-delete hover" @click="clickDel(item.id)"></i>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </el-aside>
  57. <!-- 私有库列表新增删除模块 -->
  58. <el-main style="width:35.4%;background:#f6f8ff;border-left:1px solid #D5E5FF;">
  59. <div class="mainTitle row rightAlignment">
  60. <!-- <div style="height:40px;width:238px;border:1px solid #ddd;">
  61. <input
  62. style="width:100%;height:100%;padding-left:10px;"
  63. placeholder="常用语组"
  64. type="text"
  65. v-model="matchingSerch"
  66. />
  67. <img style="width:16px;height:16px;" src="@/assets/img/serch.png" />
  68. </div> -->
  69. <div @click="popUpShow = true" class="row center hover"
  70. style="border-radius:5px;width:120px;margin-left:20px;height:40px;background:linear-gradient(180deg,rgba(245,245,245,1) 0%,rgba(238,238,238,1) 100%);border:1px solid #ddd;font-size:14px;color:#666;"
  71. >新增快捷回复
  72. </div>
  73. <div @click="deleteFastReply" class="row center hover"
  74. style="border-radius:5px;width:60px;margin-left:10px;height:40px;background:linear-gradient(180deg,rgba(245,245,245,1) 0%,rgba(238,238,238,1) 100%);border:1px solid #ddd;font-size:14px;color:#666;"
  75. >删除
  76. </div>
  77. </div>
  78. <div class="mainBox scroll">
  79. <el-form ref="form" label-width="80px">
  80. <el-form-item label>
  81. <el-checkbox-group v-model="deleteArr">
  82. <el-checkbox name="type" label="all" disabled>
  83. <!-- -->
  84. <div class="row" style="width:100%;height:100%;background:#E6EBFF;">
  85. <div style="color:#666;font-weight:bold;color:#666;width:100%; position: relative;">
  86. <p style="padding-right:40px;">快捷语</p>
  87. <p class="row item-center"
  88. style="color:#666;font-size:14px; position: absolute;left:16%;top:0;">
  89. 回复内容</p>
  90. </div>
  91. </div>
  92. </el-checkbox>
  93. <el-checkbox name="type" :label="item.id" v-for="(item,index) in ReplyArr" :key="index">
  94. <div class="row" style="width:100%;height:100%;">
  95. <div class="row" style="color:#666;color: position: relative;">
  96. <!-- style="width:50px;" -->
  97. <span style="display:block;max-width:100px; " class="ellipsis">{{item.title}}</span>
  98. <span style="margin-left: 20px; display:block;max-width:400px;" class="ellipsis "
  99. >{{item.content}}</span>
  100. </div>
  101. </div>
  102. </el-checkbox>
  103. </el-checkbox-group>
  104. </el-form-item>
  105. </el-form>
  106. </div>
  107. </el-main>
  108. </el-container>
  109. </div>
  110. </div>
  111. <!-- 私有库新增模块窗口 -->
  112. <div class="popUp" v-if="popUpShow">
  113. <div class="popUpBg" @click="popUpEsc"></div>
  114. <div class="popUpBox column item-center">
  115. <p class="editor">添加新的快捷回复</p>
  116. <div class="popUpBoxData row center">
  117. <div>
  118. <div class="row">
  119. <p>类别<span>*</span></p>
  120. <!-- v-model="popUp.type" -->
  121. <el-select v-model="popUp.type" disabled placeholder="私人库模版" class="often">
  122. </el-select>
  123. </div>
  124. <div class="row" style="margin-top: 15px;">
  125. <p>关键词<span>*</span></p>
  126. <input class="oftenTitle" v-model="popUp.title" placeholder="请输入关键词"/>
  127. </div>
  128. <div class="row" style="margin-top: 15px;">
  129. <p>回复内容<span>*</span></p>
  130. <textarea class="text" v-model="popUp.content" placeholder="请输入你要回复的内容"></textarea>
  131. </div>
  132. <div style="height:40px;margin-top:20px;" class="row average">
  133. <div @click="popUpEsc" class="row center hover"
  134. style="width:80px;height:40px;border:1px solid rgba(221,221,221,1);background:linear-gradient(180deg,rgba(245,245,245,1) 0%,rgba(238,238,238,1) 100%);border-radius:5px;font-size:16px;color:#666;"
  135. >取消
  136. </div>
  137. <div @click="newly()" class="row center hover"
  138. style="width:80px;height:40px;background:rgba(83,153,245,1);color:#FFF;border-radius:5px;font-size:16px;"
  139. >确定
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <!-- 私有库编辑模块窗口 -->
  147. <div class="popUp" v-if="popUpChangeShow">
  148. <div class="popUpBg" @click="popUpChangeShow = false,changePopUp = ''"></div>
  149. <div class="popUpBox column item-center">
  150. <p class="editor ">修改您的快捷回复</p>
  151. <div class="popUpBoxData row center">
  152. <div>
  153. <div class="row">
  154. <p>类别<span>*</span></p>
  155. <el-select disabled v-model="changePopUp.type" placeholder="私人库模版" class="often">
  156. </el-select>
  157. </div>
  158. <div class="row" style="margin-top: 15px;">
  159. <p>关键词<span>*</span></p>
  160. <input class="oftenTitle" v-model="changePopUp.title" placeholder="请输入关键词"/>
  161. </div>
  162. <div class="row" style="margin-top: 15px;">
  163. <p>回复内容<span>*</span></p>
  164. <textarea class="text" v-model="changePopUp.content" placeholder="请输入你要回复的内容"></textarea>
  165. </div>
  166. <div style="height:40px;margin-top:20px;" class="row average ">
  167. <div
  168. @click="popUpChangeShow = false,changePopUp = ''"
  169. class="row center hover"
  170. style="width:80px;height:40px;border:1px solid rgba(221,221,221,1);background:linear-gradient(180deg,rgba(245,245,245,1) 0%,rgba(238,238,238,1) 100%);border-radius:5px;font-size:16px;color:#666;"
  171. >取消
  172. </div>
  173. <div
  174. @click="changeFastreply()"
  175. class="row center hover"
  176. style="width:80px;height:40px;background:rgba(83,153,245,1);color:#FFF;border-radius:5px;font-size:16px;"
  177. >确定
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. </template>
  186. <script>
  187. import "@/css/index.css";
  188. import leftNav from "@/components/leftNav";
  189. import hader from "@/components/hader";
  190. import messageCenter from "@/components/messageCenter";
  191. import { Loading } from 'element-ui';
  192. export default {
  193. name: "FastReply",
  194. data() {
  195. return {
  196. data: {},
  197. // FastReplyLibrarySwitch: 1,
  198. leftSerch: "", //左侧搜索
  199. matchingSerch: "", //右侧匹配搜索
  200. popUpShow: false, //添加常用语开关
  201. popUpChangeShow: false, // 修改常用语开关
  202. deleteArr: [],
  203. popUp: {
  204. //新增快捷回复
  205. status: 1,
  206. content: '',//回复内容
  207. title: ''//关键字
  208. },
  209. changePopUp: {}, // 修改的快捷语
  210. ReplyArr: [], //快捷回复列表
  211. // page: 1, //分页
  212. // pageSize: 5, //分页大小
  213. // total: 25, //分页总条目
  214. time: {},
  215. };
  216. },
  217. methods: {
  218. /******************删除单条快捷回复*****************/
  219. clickDel(e) {
  220. this.$confirm('您确定要删除该条快捷回复吗?', '提示', {
  221. confirmButtonText: '确定',
  222. cancelButtonText: '取消',
  223. type: 'warning'
  224. }).then(() => {
  225. this.deleteArr.push(e);
  226. this.deleteFastReply()
  227. }).catch(() => {
  228. this.$message({
  229. type: 'info',
  230. message: '已取消删除'
  231. });
  232. });
  233. },
  234. /******************显示编辑快捷窗口*******************/
  235. popUpChange(e) {
  236. this.changePopUp = e;
  237. this.popUpChangeShow = true
  238. },
  239. /***********************提示信息集合*********************/
  240. succeed(num) {
  241. if (num == 1) {
  242. this.$notify({
  243. title: "成功",
  244. message: "操作成功",
  245. type: "success",
  246. duration: 1500
  247. });
  248. } else if (num == 2) {
  249. this.$notify({
  250. title: "错误",
  251. message: "操作失败",
  252. type: "error",
  253. duration: 1500
  254. });
  255. } else if (num == 3) {
  256. this.$notify({
  257. title: "警告",
  258. message: "请先核对再提交",
  259. type: "warning",
  260. duration: 1500
  261. });
  262. }
  263. },
  264. /********************关闭新增**********************/
  265. popUpEsc() {
  266. this.popUpShow = false;
  267. },
  268. // changePage(val) {
  269. // this.page = val;
  270. // },
  271. //
  272. /********************新增快捷回复******************/
  273. newly() {
  274. if (this.popUp.title == '' || this.popUp.title.split(" ").join("").length == 0) {
  275. this.$message.error('关键词不能为空!');
  276. return false;
  277. }
  278. if (this.popUp.content == ''|| this.popUp.content.split(" ").join("").length == 0) {
  279. this.$message.error('回复内容不能为空!');
  280. return false;
  281. }
  282. let obj = {
  283. headers: {
  284. apiToken: this.$md5("addwords" + "customer-service" + "words" + "service"),
  285. userToken: this.token
  286. }
  287. };
  288. // this.popUp.status = 1;
  289. this.$http.post(this.$ports.FastReply.addWords, this.popUp, obj).then(res => {
  290. if (res.data.code == 1) {
  291. this.succeed(1);
  292. this.ReplyArr.push({
  293. id: res.data.data.id,
  294. content: this.popUp.content,
  295. title: this.popUp.title
  296. });
  297. this.$set(this.popUp, 'content', '')
  298. this.$set(this.popUp, 'title', '')
  299. this.popUpShow = false;
  300. } else {
  301. this.succeed(2);
  302. }
  303. });
  304. },
  305. /**************查询快捷回复语列表***************/
  306. getFastReply() {
  307. Loading.service({text:'拼命加载中',background:'rgba(0, 0, 0, 0.8)'});
  308. let obj = {
  309. headers: {
  310. apiToken: this.$md5("userwords" + "customer-service" + "index" + "service"),
  311. userToken: this.token
  312. }
  313. };
  314. this.$http.get(this.$ports.FastReply.userWords,obj).then(res => {
  315. // console.log(res);
  316. if (res.data.code == 1) {
  317. //私有库
  318. this.ReplyArr = res.data.data.userWords; // res.data.data.sysWords
  319. Loading.service().close();
  320. }
  321. });
  322. },
  323. /********************删除快捷回复*****************/
  324. deleteFastReply() {
  325. let obj = {
  326. headers: {
  327. apiToken: this.$md5("deletewords" + "customer-service" + "words" + "service"),
  328. userToken: this.token
  329. }
  330. };
  331. // console.log(this.deleteArr);
  332. if (this.deleteArr.length > 0) {
  333. this.$http.post(this.$ports.FastReply.deleteWords, this.deleteArr, obj).then(
  334. res => {
  335. if (res.data.code) {
  336. this.succeed(1);
  337. this.getFastReply();
  338. // this.showFastReply()
  339. } else {
  340. this.succeed(2);
  341. }
  342. }
  343. );
  344. } else {
  345. this.succeed(3);
  346. }
  347. },
  348. // // 库状态的更改
  349. // FastReplyLibrarySwitchClick(num) {
  350. // this.FastReplyLibrarySwitch = num;
  351. // },
  352. // 获取快捷语 用于展示(可修改)
  353. // showFastReply() {
  354. // let str =
  355. // "userwords" + "customer-service" + "index" + this.time + "service";
  356. // // str = str.toLowerCase();
  357. // let obj = {
  358. // headers: {
  359. // // "Content-Type": "application/x-www-form-urlencoded",
  360. // apiToken: this.$md5(str),
  361. // userToken: this.token
  362. // }
  363. // };
  364. // this.get("api/service/index/userWords", obj).then(res => {
  365. // if (res.data.code) {
  366. // this.data = res.data.data;
  367. // }
  368. // console.log(res);
  369. // });
  370. // },
  371. /********************修改快捷语********************/
  372. changeFastreply() {
  373. let obj = {
  374. headers: {
  375. apiToken: this.$md5("updatewords" + "customer-service" + "words" + "service"),
  376. userToken: this.token
  377. }
  378. };
  379. this.$http.post(this.$ports.FastReply.updateWords, {
  380. id: this.changePopUp.id,
  381. content: this.changePopUp.content,
  382. status: 1,
  383. title: this.changePopUp.title
  384. }, obj).then((res) => {
  385. if (res.data.code == 1) {
  386. //this.getFastReply();
  387. // this.showFastReply();
  388. this.popUpChangeShow = false;
  389. this.changePopUp = '';
  390. this.succeed(1)
  391. } else {
  392. this.succeed(2)
  393. }
  394. //console.log(res)
  395. })
  396. }
  397. },
  398. mounted() {
  399. if (typeof this.$store.getters.get_user_info != 'string') {
  400. this.token = this.$store.getters.get_user_info.token;
  401. } else if (this.$store.getters.get_user_info != "") {
  402. this.token = JSON.parse(this.$store.getters.get_user_info).token;
  403. }
  404. this.time = JSON.parse(sessionStorage.getItem("time"));
  405. this.getFastReply();
  406. //this.showFastReply();
  407. },
  408. components: {
  409. leftNav,
  410. hader,
  411. messageCenter
  412. }
  413. };
  414. </script>
  415. <style>
  416. .hover:hover {
  417. cursor: pointer;
  418. }
  419. .editor {
  420. color: #666;
  421. font-size: 16px;
  422. font-weight: bold;
  423. font-family: PingFang SC;
  424. text-align: center;
  425. margin-top: 20px;
  426. }
  427. p {
  428. margin: 0;
  429. }
  430. .tit {
  431. padding-left: 20px;
  432. font-size: 14px;
  433. color: #666666;
  434. height: 50px;
  435. line-height: 50px;
  436. }
  437. .library {
  438. height: 50px;
  439. line-height: 50px;
  440. border: 1px solid #d5e5ff;
  441. border-right: none;
  442. }
  443. .library div {
  444. width: 50%;
  445. text-align: center;
  446. }
  447. /* .library div span {
  448. } */
  449. .line {
  450. position: relative;
  451. }
  452. .line::after {
  453. content: "";
  454. display: inline-block;
  455. width: 1px;
  456. height: 20px;
  457. line-height: 20px;
  458. background: #666666;
  459. position: absolute;
  460. right: 0;
  461. top: 15px;
  462. }
  463. .tit {
  464. padding-left: 20px;
  465. font-size: 14px;
  466. color: #666666;
  467. height: 50px;
  468. line-height: 50px;
  469. font-weight: bold;
  470. border-bottom: 1px solid #d5e5ff;
  471. }
  472. .library {
  473. height: 50px;
  474. line-height: 50px;
  475. border: 1px solid #d5e5ff;
  476. }
  477. .library div {
  478. width: 50%;
  479. text-align: center;
  480. }
  481. .library div span {
  482. color: #666666;
  483. font-size: 14px;
  484. padding-bottom: 13px;
  485. }
  486. div span.acty {
  487. color: #5399f5;
  488. border-bottom: 2px solid #5399f5;
  489. }
  490. .line {
  491. position: relative;
  492. }
  493. .line::after {
  494. content: "";
  495. display: inline-block;
  496. width: 1px;
  497. height: 20px;
  498. line-height: 20px;
  499. background: #666666;
  500. position: absolute;
  501. right: 0;
  502. top: 15px;
  503. }
  504. .search {
  505. margin: 20px 20px 22px;
  506. }
  507. .md20 {
  508. margin-left: 20px;
  509. margin-bottom: 20px;
  510. }
  511. .phrases span {
  512. color: #666666;
  513. font-size: 14px;
  514. }
  515. .list div span {
  516. color: #999999;
  517. font-size: 14px;
  518. }
  519. .list div span:nth-child(1) {
  520. color: #666666;
  521. font-weight: 400;
  522. }
  523. .list div {
  524. overflow: hidden;
  525. text-overflow: ellipsis;
  526. white-space: nowrap;
  527. }
  528. .fnc {
  529. margin-left: 37px;
  530. }
  531. .fnc i {
  532. color: #999999;
  533. display: inline-block;
  534. width: 20px;
  535. height: 20px;
  536. }
  537. /* main */
  538. .mainTitle {
  539. height: 60px;
  540. }
  541. .mainTitle div {
  542. position: relative;
  543. }
  544. .mainTitle div img {
  545. position: absolute;
  546. right: 12px;
  547. top: 0;
  548. bottom: 0;
  549. margin: auto 0;
  550. }
  551. .mainTitle div input {
  552. color: #ccc;
  553. }
  554. .mainTitle div input:focus {
  555. outline: none;
  556. color: #666;
  557. }
  558. .el-checkbox {
  559. width: 100%;
  560. }
  561. .el-form-item__content {
  562. margin-left: 0 !important;
  563. line-height: 0;
  564. height: 50px;
  565. }
  566. .el-checkbox {
  567. padding-left: 30px;
  568. height: 50px;
  569. display: flex;
  570. align-items: center;
  571. }
  572. /* .is-disabled{
  573. background: #E6EBFF;
  574. } */
  575. .el-checkbox:nth-child(even) {
  576. background: #fff;
  577. }
  578. .el-checkbox:nth-child(odd) {
  579. background: #eff2fd;
  580. }
  581. .el-checkbox:first-child {
  582. background: #e6ebff;
  583. }
  584. .el-form-item {
  585. margin-bottom: 0;
  586. }
  587. .el-main {
  588. overflow: visible;
  589. height: 92.1vh;
  590. }
  591. .el-checkbox__label {
  592. padding-left: 40px;
  593. display: block;
  594. width: 100%;
  595. }
  596. .mainBox {
  597. width: 100%;
  598. height: 80%;
  599. overflow-x: hidden;
  600. overflow-y: auto;
  601. margin-right: 0;
  602. }
  603. .addContent {
  604. color: #666;
  605. font-size: 14px;
  606. /* position: absolute;
  607. left: 20%;
  608. top: 0;
  609. width: 60%;
  610. overflow: hidden;
  611. text-overflow: ellipsis;
  612. white-space: nowrap; */
  613. }
  614. .popUp {
  615. width: 100%;
  616. height: 100%;
  617. position: fixed;
  618. left: 0;
  619. top: 0;
  620. z-index: 99;
  621. }
  622. .popUpBg {
  623. width: 100%;
  624. height: 100%;
  625. background: rgba(0, 0, 0, 0.01);
  626. }
  627. .popUpBox {
  628. position: absolute;
  629. left: 0;
  630. right: 0;
  631. margin: auto auto;
  632. top: 0;
  633. bottom: 0;
  634. width: 380px;
  635. height: 400px;
  636. background: #fff;
  637. box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
  638. }
  639. .popUpBoxData {
  640. margin-top: 30px;
  641. /* padding: 0 44px; */
  642. }
  643. .popUpBoxData p {
  644. /* margin-top: 10px; */
  645. color: #666;
  646. font-size: 14px;
  647. /* height: 30px; */
  648. width: 92px;
  649. line-height: 40px;
  650. /* margin-bottom: 15px; */
  651. }
  652. .popUpBoxData p span {
  653. color: #f60;
  654. }
  655. .often {
  656. width: 200px;
  657. height: 40px;
  658. color: #999;
  659. position: relative;
  660. }
  661. .el-input__inner {
  662. border: 1px solid #ddd;
  663. border-radius: 0px;
  664. color: #666;
  665. padding-left: 7px;
  666. }
  667. .el-select-dropdown__item {
  668. padding-left: 10px;
  669. }
  670. .el-popper[x-placement^="bottom"] .popper__arrow::after {
  671. display: none;
  672. }
  673. .el-popper[x-placement^="bottom"] .popper__arrow {
  674. display: none;
  675. }
  676. .el-select .el-input__inner:focus {
  677. border-color: #ddd;
  678. }
  679. .el-select-dropdown {
  680. border-radius: 0;
  681. }
  682. .el-select .el-input.is-focus .el-input__inner {
  683. border-color: #ddd;
  684. }
  685. .el-popper[x-placement^="bottom"] {
  686. margin: 0;
  687. }
  688. .el-icon-arrow-up:before {
  689. content: "\E78F";
  690. color: #666;
  691. }
  692. .choose {
  693. width: 100%;
  694. position: absolute;
  695. left: 0;
  696. bottom: 0;
  697. background: #000;
  698. }
  699. .oftenTitle {
  700. width: 140px;
  701. height: 40px;
  702. border: 1px solid #ddd;
  703. padding-left: 7px;
  704. color: #999;
  705. }
  706. .oftenTitle:focus {
  707. outline: none;
  708. color: #666;
  709. }
  710. .el-input__inner::-webkit-input-placeholder {
  711. /* WebKit browsers */
  712. color: #666;
  713. }
  714. .text {
  715. width: 200px;
  716. height: 120px;
  717. resize: none;
  718. border: 1px solid #ddd;
  719. padding: 10px 7px;
  720. font-size: 14px;
  721. color: #999;
  722. }
  723. .list {
  724. line-height: 50px;
  725. }
  726. .phrasesList {
  727. padding-right: 20px;
  728. }
  729. .text:focus {
  730. outline: none;
  731. color: #666;
  732. }
  733. </style>