index.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284
  1. <template>
  2. <div class="mine">
  3. <div class="left">
  4. <div class="user-info">
  5. <div class="user-img">
  6. <img :src="userInfo.avatar_url" alt />
  7. </div>
  8. <div class="user-span">
  9. <div class="name">
  10. 昵称:
  11. <span>{{userInfo.nickname}}</span>
  12. </div>
  13. <div class="sex">
  14. 性别:
  15. <span>{{userInfo.sex==1?'男':userInfo.sex==2?'女':'未知'}}</span>
  16. </div>
  17. <div class="age">
  18. 肤龄:
  19. <span>{{userInfo.age}}</span>
  20. </div>
  21. <div class="skin-type">
  22. 肤质:
  23. <span>{{userInfo.skin}}</span>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="user-record">
  28. <div class="fraction">
  29. <div class="title">肌肤得分</div>
  30. <div class="num">{{userInfo.score}}分</div>
  31. </div>
  32. <div class="status">
  33. <div class="title">皮肤状态</div>
  34. <div class="tips">{{userInfo.skin_status}}</div>
  35. </div>
  36. <div class="times">
  37. <div class="title">上传检测时间</div>
  38. <div class="ts">{{userInfo.check_time}}</div>
  39. </div>
  40. </div>
  41. <div class="summary">
  42. <div class="left-title">皮肤总结</div>
  43. <div class="summary-list">
  44. <div class="summary-info" v-for="item,index in detail_list" :key="index">
  45. <div class="result">
  46. <div class="result-left">
  47. <div class="title">{{item.name}}:</div>
  48. <div class="tips">{{item.main_item.name}}{{item.main_item.num}}</div>
  49. </div>
  50. <div class="right min-size">
  51. <div v-for="value,i in item.items" :key="i">{{value.name}}:{{value.num}}个</div>
  52. </div>
  53. </div>
  54. <div class="bottom-tips">
  55. <span>{{item.suggest}}</span>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="right">
  62. <div class="lable" :style="isOpen?'height: 275px;':'height: 76px;'">
  63. <div class="lable-title">
  64. <div>面诊标签</div>
  65. <div class="edit">编辑</div>
  66. </div>
  67. <div class="problem">
  68. <div class="problem-title">问题标签</div>
  69. <div class="problem-lable">
  70. <div
  71. class="lable-text"
  72. v-for="item,index in problem"
  73. :key="index"
  74. :style="{background:item.bgcolor,borderColor:item.bdcolor}"
  75. >{{item.text}}</div>
  76. </div>
  77. </div>
  78. <div class="problem">
  79. <div class="problem-title">面部标签</div>
  80. <div class="problem-lable">
  81. <div
  82. class="lable-text"
  83. v-for="item,index in lableList"
  84. :key="index"
  85. :style="{background:item.bgcolor,borderColor:item.bdcolor}"
  86. >{{item.text}}</div>
  87. </div>
  88. </div>
  89. <div class="lable-title">备注</div>
  90. <div class="remarks-text">{{remarks}}</div>
  91. <div class="open-icon">
  92. <img
  93. @click="isOpen = !isOpen"
  94. :src="isOpen?'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/unOpen.png':'https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/coupon/open.png'"
  95. alt
  96. />
  97. </div>
  98. </div>
  99. <div class="programme" :style="isOpen?'height: 165px;':'height: 364px;'">
  100. <div class="tab">
  101. <div class="tab-title">执行方案</div>
  102. <div class="add" @click="isSkin=true">新增</div>
  103. </div>
  104. <div class="programmeList">
  105. <div class="programmeWeek">
  106. <div class="programmeItem" v-for="item,index in 4" :key="index">
  107. <div
  108. :class="selectWeek==index?'weekItemSelect':'weekItem'"
  109. @click="weekSelect(index)"
  110. >第几周</div>
  111. <div class="weekLine" v-if="index==3?false:true"></div>
  112. </div>
  113. </div>
  114. <div class="weekDetails">
  115. <div class="contentItem" v-for="item,index1 in 4" :key="index1">
  116. <div class="itemTitle">第几次 干了啥 间隔多少天</div>
  117. <div class="itemContent" v-for="items,index2 in 4" :key="index2">
  118. <img class="itemContent-img" />
  119. <div class="itemContent-right">
  120. <div class="right-content">
  121. <div class="right-name">【深层清洁】美国super extra…</div>
  122. <div class="right-price">79.00</div>
  123. </div>
  124. <div class="right-project">+润百颜</div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <div class="submit" @click="onSubmit">保存</div>
  132. </div>
  133. <mine-pupop :show="isSkin">
  134. <div class="block">
  135. <div class="delete-pupop" @click="isSkin=false">
  136. <img
  137. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  138. alt
  139. />
  140. </div>
  141. <div class="pupop-title">皮肤问题标签</div>
  142. <div class="skinDiv">
  143. <div
  144. :class="item.select?'skin-item':'skin-item-not'"
  145. v-for="item,index in skinTag"
  146. :key="index"
  147. @click="selectSkingTag(index)"
  148. >{{item.name}}</div>
  149. </div>
  150. <div class="submit-frequency" @click="submitFrequency(1)">下一步</div>
  151. </div>
  152. </mine-pupop>
  153. <mine-pupop :show="faceTag">
  154. <div class="block">
  155. <div class="delete-pupop" @click="faceTag=false">
  156. <img
  157. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  158. alt
  159. />
  160. </div>
  161. <div class="pupop-title">面部问题标签</div>
  162. <div class="faceTag">
  163. <div class="faceTagContent" v-for="item,index in faceTagData" :key="index">
  164. <div class="faceTagTitle">{{item.name}}</div>
  165. <div class="faceTagHor">
  166. <div
  167. :class="tag.select?'faceTagItem':'faceTagItem-not'"
  168. v-for="tag,index1 in item.dataS"
  169. :key="index1"
  170. @click="selectfaceTag(index,index1)"
  171. >{{tag.name}}</div>
  172. </div>
  173. </div>
  174. </div>
  175. <div class="submit-frequency" @click="submitFrequency(2)">下一步</div>
  176. </div>
  177. </mine-pupop>
  178. <mine-pupop :show="notice">
  179. <div class="block">
  180. <div class="delete-pupop" @click="notice=false">
  181. <img
  182. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  183. alt
  184. />
  185. </div>
  186. <div class="pupop-title">备注</div>
  187. <textarea type="text" class="noticeInput" placeholder="备注" v-model="noticeInput"></textarea>
  188. <div class="noticeSubmit">
  189. <div class="submit-back" @click="backSubmit(3)">返回</div>
  190. <div class="submit-notice" @click="submitFrequency(4)">确定</div>
  191. <div class="submit-notice" @click="submitFrequency(3)">跳过</div>
  192. </div>
  193. </div>
  194. </mine-pupop>
  195. <!-- 新增执行方案 -->
  196. <mine-pupop :show="isPupop">
  197. <div class="block">
  198. <div class="delete-pupop" @click="isPupop=false">
  199. <img
  200. src="https://we-spa.oss-cn-shenzhen.aliyuncs.com/pad_clerk/icon/slices/delete.png"
  201. alt
  202. />
  203. </div>
  204. <div class="pupop-title">选择执行方案</div>
  205. <el-select v-model="projectInfo" placeholder="请选择项目" class="project-select" size="mini">
  206. <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
  207. </el-select>
  208. <div class="frequency">
  209. <div>执行频率:</div>
  210. <el-select v-model="weekInfo" class="week-select" size="mini">
  211. <el-option
  212. v-for="item in weekList"
  213. :key="item.value"
  214. :label="item.label"
  215. :value="item.value"
  216. ></el-option>
  217. </el-select>
  218. <div>周</div>
  219. <el-select v-model="timesInfo" class="times-select" size="mini">
  220. <el-option
  221. v-for="item in timesList"
  222. :key="item.value"
  223. :label="item.label"
  224. :value="item.value"
  225. ></el-option>
  226. </el-select>
  227. <div>次</div>
  228. </div>
  229. <div class="submit-frequency" @click="submitFrequency(4)">确定</div>
  230. </div>
  231. </mine-pupop>
  232. </div>
  233. </template>
  234. <script>
  235. import minePupop from "../../../components/minePupop/index.vue";
  236. import api from "../../../server/home";
  237. export default {
  238. components: { minePupop },
  239. data() {
  240. return {
  241. userInfo: {},
  242. //皮肤总结
  243. detail_list: [],
  244. problem: [
  245. { text: "干性(干燥)" },
  246. { text: "干性(干燥、脱皮、缺水)" },
  247. { text: "干性(干燥、脱皮、缺水)" },
  248. { text: "干性(干燥、脱皮、缺水)" },
  249. { text: "干性(干燥、脱皮、缺水)" },
  250. { text: "干性(干燥、脱皮、缺水)" }
  251. ],
  252. //面部标签
  253. lableList: [
  254. { text: "干性(干燥)" },
  255. { text: "干性(干燥、脱皮、缺水)" },
  256. { text: "干性(干燥、脱皮、缺水)" },
  257. { text: "干性(干燥、脱皮、缺水)" },
  258. { text: "干性(干燥、脱皮、缺水)" },
  259. { text: "干性(干燥、脱皮、缺水)" }
  260. ],
  261. //后台默认的标签
  262. tags: [],
  263. noticeInput: "",
  264. notice: false,
  265. //执行方案
  266. programmeList: [
  267. {
  268. frequency: "1周1次",
  269. duration: "28天"
  270. },
  271. {
  272. frequency: "1周1次",
  273. duration: "28天"
  274. },
  275. {
  276. frequency: "1周1次",
  277. duration: "28天"
  278. }
  279. ],
  280. faceTag: false,
  281. faceTagData: [],
  282. selectWeek: 0,
  283. skinTag: [],
  284. //项目列表
  285. projectList: [
  286. {
  287. value: "选项1",
  288. label: "黄金糕"
  289. },
  290. {
  291. value: "选项2",
  292. label: "双皮奶"
  293. },
  294. {
  295. value: "选项3",
  296. label: "蚵仔煎"
  297. },
  298. {
  299. value: "选项4",
  300. label: "龙须面"
  301. },
  302. {
  303. value: "选项5",
  304. label: "北京烤鸭"
  305. }
  306. ],
  307. //周期
  308. weekList: [
  309. {
  310. value: "选项1",
  311. label: "1"
  312. },
  313. {
  314. value: "选项2",
  315. label: "2"
  316. }
  317. ],
  318. //次数
  319. timesList: [
  320. {
  321. value: "选项1",
  322. label: "1"
  323. },
  324. {
  325. value: "选项2",
  326. label: "2"
  327. }
  328. ],
  329. timesInfo: "", //次数
  330. projectInfo: "", //项目
  331. projectId: "", //项目id
  332. weekInfo: "", //周次
  333. programmeIndex: "",
  334. remarks: "打架和考到几点拉进来的", //备注
  335. isPupop: false, //新增执行方案
  336. isSkin: false, //新增皮肤问题标签
  337. id: 0,
  338. isOpen: false //是否展开
  339. };
  340. },
  341. computed: {},
  342. watch: {},
  343. methods: {
  344. getSkinInfo() {
  345. api.getSkinInfo({ id: this.id }).then(res => {
  346. this.userInfo = res.data.user;
  347. this.detail_list = res.data.detail_list;
  348. this.programmeList = res.data.scheme_list;
  349. // this.remarks = res.data.remark
  350. });
  351. },
  352. // 获取问题标签
  353. skinFace_tags() {
  354. api.skinFace_tags().then(res => {
  355. let doSkin = [];
  356. for (let i = 0; i < res.data.list.length; i++) {
  357. let skinItem = res.data.list[i];
  358. skinItem.dataS = [];
  359. for (let j = 0; j < skinItem.question_name.length; j++) {
  360. let doNow = {
  361. name: skinItem.question_name[j],
  362. select: false
  363. };
  364. skinItem.dataS.push(doNow);
  365. }
  366. doSkin.push(skinItem);
  367. }
  368. console.log(doSkin);
  369. this.faceTagData = doSkin;
  370. });
  371. },
  372. // 获取皮肤问题标签
  373. skinSkin_tags() {
  374. api.skinSkin_tags().then(res => {
  375. let doSkin = [];
  376. for (let i = 0; i < res.data.list.length; i++) {
  377. let skinItem = res.data.list[i];
  378. skinItem.select = false;
  379. doSkin.push(skinItem);
  380. }
  381. this.skinTag = doSkin;
  382. });
  383. },
  384. getSkinTags() {
  385. api.getSkinTags().then(res => {
  386. this.tags = res.data.tags;
  387. });
  388. },
  389. selectSkingTag(index) {
  390. this.skinTag[index].select = !this.skinTag[index].select;
  391. },
  392. selectfaceTag(index, index1) {
  393. this.faceTagData[index].dataS[index1].select = !this.faceTagData[index]
  394. .dataS[index1].select;
  395. },
  396. getProject() {
  397. api.getProject().then(res => {
  398. this.projectList = res.data.list;
  399. });
  400. },
  401. getSkinUpdate() {
  402. let params = {
  403. remark: this.remarks,
  404. tags: this.lableList.toString()
  405. };
  406. api.getSkinUpdate().then(res => {});
  407. },
  408. onOperation(index) {
  409. if (this.programmeList[index].onSelect) {
  410. this.$set(
  411. this.programmeList[index],
  412. "onSelect",
  413. !this.programmeList[index].onSelect
  414. );
  415. } else {
  416. this.$set(this.programmeList[index], "onSelect", true);
  417. }
  418. },
  419. weekSelect(index) {
  420. console.log("xxxx");
  421. this.selectWeek = index;
  422. },
  423. onSubmit() {
  424. this.getSkinUpdate();
  425. },
  426. submitFrequency(e) {
  427. console.log(this.noticeInput);
  428. if (e == 1) {
  429. this.isSkin = false;
  430. this.faceTag = true;
  431. }
  432. if (e == 2) {
  433. this.faceTag = false;
  434. this.notice = true;
  435. }
  436. if (e == 4) {
  437. this.schemeSave();
  438. }
  439. },
  440. // 面部标签值,如:额头:颜色,横纹;眼部:下垂;
  441. schemeSave() {
  442. let skinTags = "";
  443. let FaceTags = "";
  444. for (let i = 0; i < this.skinTag.length; i++) {
  445. if (this.skinTag[i].select) {
  446. skinTags = this.skinTag[i].id;
  447. }
  448. }
  449. for (let i = 0; i < this.faceTagData.length; i++) {
  450. for (let j = 0; j < this.faceTagData[i].dataS.length; j++) {
  451. if (this.faceTagData[i].dataS[j].select) {
  452. FaceTags =
  453. FaceTags +
  454. "," +
  455. this.faceTagData[i].name +
  456. ":" +
  457. this.faceTagData[i].dataS[j].name;
  458. }
  459. }
  460. }
  461. api
  462. .schemeSave({
  463. user_id: this.id,
  464. skin_id: skinTags,
  465. face_names: FaceTags.substring(1,FaceTags.length),
  466. remark: this.noticeInput
  467. })
  468. .then(res => {
  469. this.$router.push({
  470. path: "/testSkin/updates",
  471. query: {
  472. id: 1
  473. }
  474. });
  475. });
  476. },
  477. randomColor(type) {
  478. let arr = [
  479. {
  480. background: "rgba(244, 247, 255, 1)",
  481. border: "rgba(85, 124, 255, 1)"
  482. },
  483. {
  484. background: "rgba(245, 252, 245, 1)",
  485. border: "rgba(66, 211, 81, 1)"
  486. },
  487. {
  488. background: "rgba(254, 244, 237, 1)",
  489. border: "rgba(250, 125, 34, 1)"
  490. },
  491. {
  492. background: "rgba(249, 245, 255, 1)",
  493. border: "rgba(136, 50, 255, 1)"
  494. },
  495. {
  496. background: "rgba(255, 252, 245, 1)",
  497. border: "rgba(204, 116, 42, 1)"
  498. }
  499. ];
  500. this.problem.forEach(res => {
  501. let color = Math.floor(Math.random() * arr.length);
  502. this.$set(res, "bgcolor", arr[color].background);
  503. this.$set(res, "bdcolor", arr[color].border);
  504. });
  505. this.lableList.forEach(res => {
  506. let color = Math.floor(Math.random() * arr.length);
  507. this.$set(res, "bgcolor", arr[color].background);
  508. this.$set(res, "bdcolor", arr[color].border);
  509. });
  510. }
  511. },
  512. created() {
  513. let id = this.$route.query.id;
  514. this.id = id;
  515. this.skinFace_tags();
  516. this.skinSkin_tags();
  517. this.getSkinInfo();
  518. this.getProject();
  519. this.getSkinTags();
  520. },
  521. mounted() {
  522. this.randomColor();
  523. }
  524. };
  525. </script>
  526. <style lang='less' scoped>
  527. .mine {
  528. height: 100%;
  529. display: flex;
  530. .left {
  531. width: 318px;
  532. padding: 12px 12px 0 12px;
  533. background: #ffffff;
  534. box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
  535. border-radius: 8px;
  536. font-size: 13px;
  537. font-family: PingFangSC-Regular, PingFang SC;
  538. font-weight: 400;
  539. color: #999999;
  540. line-height: 18px;
  541. height: 100%;
  542. .user-info {
  543. display: flex;
  544. align-items: center;
  545. .user-img {
  546. width: 96px;
  547. img {
  548. width: 100%;
  549. border-radius: 5px;
  550. display: block;
  551. }
  552. }
  553. .user-span {
  554. margin-left: 12px;
  555. span {
  556. color: #333333;
  557. }
  558. }
  559. }
  560. .user-record {
  561. margin-top: 16px;
  562. display: flex;
  563. justify-content: space-between;
  564. .num {
  565. font-size: 18px;
  566. font-family: OPPOSans-B, OPPOSans;
  567. font-weight: normal;
  568. color: #333333;
  569. line-height: 29px;
  570. }
  571. .tips {
  572. font-size: 13px;
  573. font-family: PingFangSC-Regular, PingFang SC;
  574. font-weight: 400;
  575. color: #333333;
  576. line-height: 30px;
  577. }
  578. .ts {
  579. font-size: 13px;
  580. font-family: PingFangSC-Regular, PingFang SC;
  581. font-weight: 400;
  582. color: #333333;
  583. line-height: 30px;
  584. }
  585. }
  586. .summary {
  587. .left-title {
  588. margin-top: 10px;
  589. font-size: 14px;
  590. font-family: PingFangSC-Medium, PingFang SC;
  591. font-weight: 500;
  592. color: #333333;
  593. line-height: 20px;
  594. }
  595. .summary-list {
  596. margin-top: 10px;
  597. height: 280px;
  598. overflow: scroll;
  599. .summary-info {
  600. border-radius: 4px;
  601. margin-bottom: 20px;
  602. border: 1px solid #f5f5f5;
  603. .result {
  604. padding: 10px;
  605. display: flex;
  606. justify-content: space-between;
  607. align-content: center;
  608. .result-left {
  609. font-family: PingFangSC-Regular, PingFang SC;
  610. font-weight: 400;
  611. .title {
  612. font-size: 14px;
  613. color: #666666;
  614. line-height: 20px;
  615. }
  616. .tips {
  617. font-size: 18px;
  618. color: #fa7d22;
  619. line-height: 25px;
  620. }
  621. }
  622. .right {
  623. font-size: 12px;
  624. font-family: PingFangSC-Regular, PingFang SC;
  625. font-weight: 400;
  626. color: #666666;
  627. line-height: 20px;
  628. text-align: end;
  629. }
  630. }
  631. .bottom-tips {
  632. padding: 6px 10px;
  633. font-size: 10px;
  634. font-family: PingFang-SC-Regular, PingFang-SC;
  635. font-weight: 400;
  636. color: #333333;
  637. line-height: 14px;
  638. background: #f5f5f5;
  639. border-radius: 4px;
  640. span {
  641. display: block;
  642. zoom: 0.83;
  643. }
  644. }
  645. }
  646. }
  647. }
  648. }
  649. .right {
  650. margin-left: 18px;
  651. position: relative;
  652. flex: 1;
  653. .lable {
  654. width: 100%;
  655. padding: 12px;
  656. background: #ffffff;
  657. box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
  658. border-radius: 8px;
  659. overflow: hidden;
  660. position: relative;
  661. .lable-title {
  662. font-size: 14px;
  663. font-family: PingFangSC-Medium, PingFang SC;
  664. font-weight: 500;
  665. color: #333333;
  666. line-height: 20px;
  667. margin-bottom: 8px;
  668. display: flex;
  669. justify-content: space-between;
  670. .edit {
  671. width: 60px;
  672. height: 28px;
  673. background: #fa7d22;
  674. border-radius: 8px;
  675. font-size: 14px;
  676. font-family: PingFangSC-Medium, PingFang SC;
  677. font-weight: 500;
  678. color: #ffffff;
  679. line-height: 28px;
  680. text-align: center;
  681. }
  682. }
  683. .remarks-text {
  684. font-size: 12px;
  685. font-family: PingFangSC-Regular, PingFang SC;
  686. font-weight: 400;
  687. color: #666666;
  688. line-height: 17px;
  689. }
  690. .problem {
  691. display: flex;
  692. .problem-title {
  693. font-size: 13px;
  694. font-family: PingFangSC-Regular, PingFang SC;
  695. font-weight: 400;
  696. color: #333333;
  697. line-height: 18px;
  698. }
  699. .problem-lable {
  700. flex: 1;
  701. overflow-y: hidden;
  702. width: 100%;
  703. height: 68px;
  704. font-size: 12px;
  705. font-family: PingFang-SC-Regular, PingFang-SC;
  706. font-weight: 400;
  707. color: #333333;
  708. line-height: 17px;
  709. display: flex;
  710. flex-flow: column wrap;
  711. list-style-type: none;
  712. overflow-x: scroll;
  713. align-items: baseline;
  714. .lable-text {
  715. margin-left: 10px;
  716. margin-bottom: 10px;
  717. height: 24px;
  718. line-height: 24px;
  719. border: 1px solid #42d351;
  720. padding: 0 12px;
  721. border-radius: 2px;
  722. }
  723. }
  724. }
  725. .open-icon {
  726. width: 100%;
  727. padding-top: 10px;
  728. position: absolute;
  729. height: 38px;
  730. background: #ffffff;
  731. bottom: 0;
  732. text-align: center;
  733. img {
  734. width: 24px;
  735. }
  736. }
  737. }
  738. .programme {
  739. margin-top: 18px;
  740. width: 100%;
  741. background: #ffffff;
  742. box-shadow: 0px 2px 4px 0px rgba(184, 191, 198, 0.2);
  743. border-radius: 8px;
  744. padding: 14px 12px 0 12px;
  745. overflow: hidden;
  746. .tab {
  747. display: flex;
  748. align-items: center;
  749. justify-content: space-between;
  750. .tab-title {
  751. font-size: 14px;
  752. font-family: PingFangSC-Medium, PingFang SC;
  753. font-weight: 500;
  754. color: #333333;
  755. line-height: 20px;
  756. }
  757. .add {
  758. width: 60px;
  759. height: 28px;
  760. line-height: 28px;
  761. background: #fa7d22;
  762. border-radius: 8px;
  763. font-size: 14px;
  764. font-family: PingFangSC-Medium, PingFang SC;
  765. font-weight: 500;
  766. color: #ffffff;
  767. text-align: center;
  768. }
  769. }
  770. .programmeList {
  771. width: 510px;
  772. height: 270px;
  773. }
  774. .programmeWeek {
  775. width: 510px;
  776. display: flex;
  777. align-items: center;
  778. }
  779. .programmeItem {
  780. margin-top: 20px;
  781. flex: 1;
  782. display: flex;
  783. }
  784. .weekItem {
  785. text-align: center;
  786. font-size: 13px;
  787. font-family: PingFangSC-Regular, PingFang SC;
  788. font-weight: 400;
  789. color: #999999;
  790. flex: 1;
  791. }
  792. .weekItemSelect {
  793. text-align: center;
  794. font-size: 13px;
  795. font-family: PingFangSC-Regular, PingFang SC;
  796. font-weight: 400;
  797. color: #fa7d22;
  798. flex: 1;
  799. }
  800. .weekLine {
  801. width: 1px;
  802. height: 12px;
  803. background: #f0f0f0;
  804. }
  805. .weekDetails {
  806. margin-top: 20px;
  807. width: 509px;
  808. height: 232px;
  809. border-radius: 6px;
  810. border: 1px solid #f5f5f5;
  811. display: flex;
  812. align-items: center;
  813. overflow: scroll;
  814. }
  815. .contentItem {
  816. margin-left: 10px;
  817. width: 317px;
  818. min-height: 211px;
  819. border-right: 1px solid #f5f5f5;
  820. // overflow-y: scroll;
  821. }
  822. .line-hor {
  823. margin-top: 30px;
  824. margin-left: 10px;
  825. width: 1px;
  826. height: 261px;
  827. background: #f0f0f0;
  828. }
  829. .itemTitle {
  830. margin-top: 40px;
  831. width: 100%;
  832. line-height: 20px;
  833. font-size: 12px;
  834. font-weight: 400;
  835. color: #333333;
  836. }
  837. .itemContent {
  838. width: 317px;
  839. margin-top: 10px;
  840. display: flex;
  841. align-items: center;
  842. height: 49px;
  843. }
  844. .itemContent-img {
  845. width: 49px;
  846. height: 49px;
  847. background: #d8d8d8;
  848. border-radius: 2px;
  849. }
  850. .itemContent-right {
  851. margin-left: 10px;
  852. display: flex;
  853. flex-direction: column;
  854. height: 49px;
  855. flex: 1;
  856. }
  857. .right-content {
  858. flex: 1;
  859. display: flex;
  860. }
  861. .right-name {
  862. font-size: 12px;
  863. font-family: PingFangSC-Medium, PingFang SC;
  864. font-weight: 500;
  865. color: #333333;
  866. flex: 1;
  867. }
  868. .right-price {
  869. margin-right: 10px;
  870. margin-left: 20px;
  871. font-size: 8px;
  872. font-family: OPPOSans-B, OPPOSans;
  873. font-weight: normal;
  874. color: #ff3007;
  875. }
  876. .right-project {
  877. font-size: 12px;
  878. font-family: PingFangSC-Regular, PingFang SC;
  879. font-weight: 400;
  880. color: #ffc630;
  881. }
  882. // <div class="programmeList">
  883. // <div class="weekDetails">
  884. // <div class="contentItem">
  885. // <div class="itemTitle">第几次 干了啥 间隔多少天</div>
  886. // <div class="itemContent">
  887. // <img class="itemContent-img" />
  888. // <div class="itemContent-right">
  889. // <div class="right-content">
  890. // <div class="right-name">【深层清洁】美国super extra…</div>
  891. // <div class="right-price">79.00</div>
  892. // </div>
  893. // <div class="right-project">+润百颜</div>
  894. // </div>
  895. // </div>
  896. // </div>
  897. // </div>
  898. // </div>
  899. .programme-list {
  900. margin-top: 10px;
  901. height: 150px;
  902. overflow: scroll;
  903. position: relative;
  904. z-index: 1;
  905. .programme-info {
  906. position: relative;
  907. padding: 8px 10px;
  908. margin-bottom: 10px;
  909. display: flex;
  910. align-items: center;
  911. border-radius: 4px;
  912. border: 1px solid #f5f5f5;
  913. .programme-left {
  914. flex: 1;
  915. display: flex;
  916. .programme-img {
  917. width: 48px;
  918. img {
  919. width: 100%;
  920. display: block;
  921. }
  922. }
  923. .programme-tips {
  924. margin-left: 10px;
  925. font-size: 10px;
  926. font-family: PingFangSC-Regular, PingFang SC;
  927. font-weight: 400;
  928. color: #999999;
  929. line-height: 14px;
  930. }
  931. }
  932. .programme-right {
  933. flex: 1;
  934. font-size: 12px;
  935. font-family: PingFangSC-Regular, PingFang SC;
  936. font-weight: 400;
  937. color: #333333;
  938. line-height: 17px;
  939. padding-left: 125px;
  940. .duration {
  941. margin-top: 14px;
  942. }
  943. }
  944. .operation {
  945. position: absolute;
  946. left: 50%;
  947. transform: translateX(-50%);
  948. top: 10px;
  949. z-index: 10;
  950. width: 44px;
  951. background: #ffffff;
  952. box-shadow: 0px 9px 28px 8px rgba(0, 0, 0, 0.05),
  953. 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
  954. 0px 3px 6px -4px rgba(0, 0, 0, 0.12);
  955. border-radius: 2px;
  956. padding: 10px;
  957. font-size: 12px;
  958. font-family: PingFangSC-Regular, PingFang SC;
  959. font-weight: 400;
  960. color: #333333;
  961. line-height: 17px;
  962. .delete {
  963. margin-top: 20px;
  964. }
  965. }
  966. }
  967. .programme-active {
  968. border: 1px solid #fa852f;
  969. }
  970. }
  971. }
  972. .submit {
  973. margin-top: 18px;
  974. position: relative;
  975. left: 50%;
  976. transform: translateX(-50%);
  977. width: 176px;
  978. height: 28px;
  979. line-height: 28px;
  980. background: #fa7d22;
  981. border-radius: 14px;
  982. text-align: center;
  983. font-size: 14px;
  984. font-family: PingFangSC-Medium, PingFang SC;
  985. font-weight: 500;
  986. color: #ffffff;
  987. }
  988. }
  989. .block {
  990. width: 540px;
  991. background: #ffffff;
  992. border-radius: 8px;
  993. position: relative;
  994. padding: 42px;
  995. .delete-pupop {
  996. position: absolute;
  997. width: 32px;
  998. height: 32px;
  999. top: 5px;
  1000. right: 5px;
  1001. img {
  1002. width: 100%;
  1003. height: 100%;
  1004. display: block;
  1005. }
  1006. }
  1007. .pupop-title {
  1008. font-size: 14px;
  1009. font-family: PingFangSC-Medium, PingFang SC;
  1010. font-weight: 500;
  1011. color: #333333;
  1012. line-height: 20px;
  1013. text-align: center;
  1014. }
  1015. .skinDiv {
  1016. justify-content: center;
  1017. display: flex;
  1018. flex-wrap: wrap;
  1019. }
  1020. .skin-item {
  1021. margin-top: 20px;
  1022. width: 172px;
  1023. background: #f4f7ff;
  1024. border-radius: 2px;
  1025. border: 1px solid #557cff;
  1026. line-height: 23px;
  1027. font-size: 12px;
  1028. font-weight: 400;
  1029. color: #333333;
  1030. text-align: center;
  1031. margin-right: 20px;
  1032. }
  1033. .skin-item-not {
  1034. margin-top: 20px;
  1035. width: 172px;
  1036. height: 25px;
  1037. background: #f5f5f5;
  1038. line-height: 25px;
  1039. border-radius: 2px;
  1040. font-size: 12px;
  1041. font-weight: 400;
  1042. color: #333333;
  1043. text-align: center;
  1044. margin-right: 20px;
  1045. }
  1046. // <div class="skinDiv">
  1047. // <div class="skin-item"
  1048. // v-for="item,index in skinTag"
  1049. // :key="index">
  1050. // {{item.title}}
  1051. // </div>
  1052. // </div>
  1053. .faceTag {
  1054. margin-top: 20px;
  1055. width: 426px;
  1056. height: 221px;
  1057. overflow-y: scroll;
  1058. }
  1059. .faceTagContent {
  1060. display: flex;
  1061. // align-items: center;
  1062. }
  1063. .faceTagTitle {
  1064. margin-top: 20px;
  1065. text-align: right;
  1066. width: 50px;
  1067. font-size: 14px;
  1068. font-weight: 500;
  1069. color: #333333;
  1070. }
  1071. .faceTagHor {
  1072. flex: 1;
  1073. display: flex;
  1074. align-items: center;
  1075. flex-wrap: wrap;
  1076. }
  1077. .faceTagItem-not {
  1078. margin-top: 15px;
  1079. margin-left: 10px;
  1080. width: 49px;
  1081. height: 25px;
  1082. background: #f5f5f5;
  1083. border-radius: 2px;
  1084. line-height: 25px;
  1085. text-align: center;
  1086. font-size: 12px;
  1087. font-weight: 400;
  1088. color: #333333;
  1089. }
  1090. .faceTagItem {
  1091. margin-top: 15px;
  1092. margin-left: 10px;
  1093. width: 49px;
  1094. height: 25px;
  1095. background: #f4f7ff;
  1096. border: 1px solid #557cff;
  1097. border-radius: 2px;
  1098. line-height: 23px;
  1099. text-align: center;
  1100. font-size: 12px;
  1101. font-weight: 400;
  1102. color: #333333;
  1103. }
  1104. // <div class="faceTag">
  1105. // <div class="faceTagContent" v-for="item,index in faceTagData" :key="index">
  1106. // <div class="faceTagTitle">{{item.title}}</div>
  1107. // <div class="faceTagHor">
  1108. // <div
  1109. // class="faceTagItem"
  1110. // v-for="tag,index in item.item"
  1111. // :key="index"
  1112. // @click="selectSkingTag(index)"
  1113. // >{{tag}}</div>
  1114. // </div>
  1115. // </div>
  1116. // </div>
  1117. .noticeInput {
  1118. margin-top: 50px;
  1119. margin-left: 80px;
  1120. padding: 10px;
  1121. width: 307px;
  1122. height: 184px;
  1123. border: 1px solid #f5f5f5;
  1124. }
  1125. .noticeSubmit {
  1126. margin-top: 20px;
  1127. width: 100%;
  1128. display: flex;
  1129. align-items: center;
  1130. justify-content: center;
  1131. }
  1132. .submit-back {
  1133. width: 100px;
  1134. height: 29px;
  1135. border-radius: 14px;
  1136. border: 1px solid #fa7d22;
  1137. font-size: 14px;
  1138. font-weight: 500;
  1139. color: #fa7d22;
  1140. line-height: 29px;
  1141. text-align: center;
  1142. margin-left: 22px;
  1143. }
  1144. .submit-notice {
  1145. width: 100px;
  1146. height: 29px;
  1147. border-radius: 14px;
  1148. font-size: 14px;
  1149. font-weight: 500;
  1150. background: #fa7d22;
  1151. color: white;
  1152. line-height: 29px;
  1153. text-align: center;
  1154. margin-left: 22px;
  1155. }
  1156. // <div class="noticeSubmit">
  1157. // <div class="submit-back" @click="backSubmit(3)">返回</div>
  1158. // <div class="submit-notice" @click="submitFrequency(3)">确定</div>
  1159. // <div class="submit-notice" @click="submitFrequency(3)">跳过</div>
  1160. // </div>
  1161. .project-select {
  1162. margin-top: 26px;
  1163. position: relative;
  1164. left: 50%;
  1165. transform: translateX(-50%);
  1166. width: 300px;
  1167. }
  1168. .frequency {
  1169. margin-top: 20px;
  1170. display: flex;
  1171. justify-content: center;
  1172. align-items: center;
  1173. font-size: 14px;
  1174. font-family: PingFangSC-Regular, PingFang SC;
  1175. font-weight: 400;
  1176. color: #333333;
  1177. line-height: 20px;
  1178. .week-select {
  1179. width: 77px;
  1180. margin-right: 8px;
  1181. }
  1182. .times-select {
  1183. width: 77px;
  1184. margin: 0 8px 0 20px;
  1185. }
  1186. }
  1187. .submit-frequency {
  1188. position: relative;
  1189. left: 50%;
  1190. transform: translateX(-50%);
  1191. margin-top: 58px;
  1192. width: 176px;
  1193. height: 28px;
  1194. text-align: center;
  1195. background: #fa7d22;
  1196. border-radius: 14px;
  1197. font-size: 14px;
  1198. font-family: PingFangSC-Medium, PingFang SC;
  1199. font-weight: 500;
  1200. color: #ffffff;
  1201. line-height: 28px;
  1202. }
  1203. }
  1204. }
  1205. </style>