weeklyHistoricalDetils.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <template>
  2. <div>
  3. <!-- 顶部条-->
  4. <div class="navBarTOP">
  5. <van-nav-bar class="navBar" title="周报详情" left-arrow @click-left="onClickLeft" />
  6. </div>
  7. <!-- 主体内容-->
  8. <div class="container linep">
  9. <div class="lineGrey"></div>
  10. <div class="lineGrey"></div>
  11. <div class="lineGrey"></div>
  12. <div class="lineGrey"></div>
  13. <div class="lineGrey"></div>
  14. <p style="font-size: 16px; margin: 10px 0">{{ title }}</p>
  15. <van-collapse v-model="activeNames">
  16. <van-collapse-item title="建店布机" name="2">
  17. <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
  18. </van-collapse-item>
  19. <van-collapse-item name="16" title="专业时时丽分销店下单">
  20. <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
  21. </van-collapse-item>
  22. <van-collapse-item title="业绩目标SAP(千元)" name="1" v-if="type != 3 && type != 4">
  23. <performanceSAP :reportTargetAll="reportTargetAll" :JZQuota="JZQuota"></performanceSAP>
  24. </van-collapse-item>
  25. <van-collapse-item name="27" title="乳胶漆中高端(千元)">
  26. <van-row>
  27. <van-col span="12"><span class="leftTitle">本月业绩</span></van-col>
  28. <van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
  29. <van-col span="12"
  30. ><p>
  31. 实际:<span class="colorbalck">{{
  32. Micrometer(reportTargetAll.rjqSapMonthAct)
  33. }}</span>
  34. </p></van-col
  35. >
  36. <van-col span="12"
  37. ><p>
  38. 实际:<span class="colorbalck">{{
  39. Micrometer(reportTargetAll.rjqSapQuarterAct)
  40. }}</span>
  41. </p></van-col
  42. >
  43. <van-col span="12"
  44. ><p>
  45. 达成率:<span class="colorbalck">{{ reportTargetAll.rjqSapMonthSuccessRate }}%</span>
  46. </p></van-col
  47. >
  48. <van-col span="12"
  49. ><p>
  50. 达成率:<span class="colorbalck"
  51. >{{ reportTargetAll.rjqSapQuarterSuccessRate }}%</span
  52. >
  53. </p></van-col
  54. >
  55. <van-col span="12"
  56. ><p>
  57. 成长率:<span class="colorbalck">{{ reportTargetAll.rjqSapMonthGrowRate }}%</span>
  58. </p></van-col
  59. >
  60. <van-col span="12"
  61. ><p>
  62. 成长率:<span class="colorbalck">{{ reportTargetAll.rjqSapQuarterGrowRate }}%</span>
  63. </p></van-col
  64. >
  65. </van-row>
  66. </van-collapse-item>
  67. <van-collapse-item name="11" title="专业时时丽SAP(千元)">
  68. <ZYSAP :reportTargetAll="reportTargetAll"></ZYSAP>
  69. </van-collapse-item>
  70. <van-collapse-item name="28" title="防水+背胶SAP(千元)">
  71. <van-row>
  72. <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
  73. ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
  74. <van-col span="12"
  75. ><p>
  76. 实际:<span class="colorbalck">{{
  77. Micrometer(reportTargetAll.fsbjSapMonthAct)
  78. }}</span>
  79. </p></van-col
  80. >
  81. <van-col span="12"
  82. ><p>
  83. 实际:<span class="colorbalck">{{
  84. Micrometer(reportTargetAll.fsbjSapQuarterAct)
  85. }}</span>
  86. </p></van-col
  87. >
  88. <van-col span="12"
  89. ><p>
  90. 达成率:<span class="colorbalck"
  91. >{{ reportTargetAll.fsbjSapMonthSuccessRate }}%</span
  92. >
  93. </p></van-col
  94. >
  95. <van-col span="12"
  96. ><p>
  97. 达成率:<span class="colorbalck"
  98. >{{ reportTargetAll.fsbjSapQuarterSuccessRate }}%</span
  99. >
  100. </p></van-col
  101. >
  102. <van-col span="12"
  103. ><p>
  104. 成长率:<span class="colorbalck">{{ reportTargetAll.fsbjSapMonthGrowRate }}%</span>
  105. </p></van-col
  106. >
  107. <van-col span="12"
  108. ><p>
  109. 成长率:<span class="colorbalck">{{ reportTargetAll.fsbjSapQuarterGrowRate }}%</span>
  110. </p></van-col
  111. >
  112. </van-row>
  113. </van-collapse-item>
  114. <van-collapse-item name="29" title="瓷砖胶SAP(千元)">
  115. <van-row>
  116. <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
  117. ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
  118. <van-col span="12"
  119. ><p>
  120. 实际:<span class="colorbalck">{{
  121. Micrometer(reportTargetAll.czjSapMonthAct)
  122. }}</span>
  123. </p></van-col
  124. >
  125. <van-col span="12"
  126. ><p>
  127. 实际:<span class="colorbalck">{{
  128. Micrometer(reportTargetAll.czjSapQuarterAct)
  129. }}</span>
  130. </p></van-col
  131. >
  132. <van-col span="12"
  133. ><p>
  134. 达成率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthSuccessRate }}%</span>
  135. </p></van-col
  136. >
  137. <van-col span="12"
  138. ><p>
  139. 达成率:<span class="colorbalck"
  140. >{{ reportTargetAll.czjSapQuarterSuccessRate }}%</span
  141. >
  142. </p></van-col
  143. >
  144. <van-col span="12"
  145. ><p>
  146. 成长率:<span class="colorbalck">{{ reportTargetAll.czjSapMonthGrowRate }}%</span>
  147. </p></van-col
  148. >
  149. <van-col span="12"
  150. ><p>
  151. 成长率:<span class="colorbalck">{{ reportTargetAll.czjSapQuarterGrowRate }}%</span>
  152. </p></van-col
  153. >
  154. </van-row>
  155. </van-collapse-item>
  156. <van-collapse-item title="魔术漆SAP(千元)" name="3">
  157. <van-row>
  158. <van-col span="12"><span class="leftTitle">本月业绩</span></van-col>
  159. <van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
  160. <van-col span="12"
  161. ><p>
  162. 实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.ysqMonthAct) }}</span>
  163. </p></van-col
  164. >
  165. <van-col span="12"
  166. ><p>
  167. 实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.ysqQuarterAct) }}</span>
  168. </p></van-col
  169. >
  170. <van-col span="12"
  171. ><p>
  172. 达成率:<span class="colorbalck">{{ reportTargetAll.ysqMonthSuccessRate }}%</span>
  173. </p></van-col
  174. >
  175. <van-col span="12"
  176. ><p>
  177. 达成率:<span class="colorbalck">{{ reportTargetAll.ysqQuarterSuccessRate }}%</span>
  178. </p></van-col
  179. >
  180. <van-col span="12"
  181. ><p>
  182. 成长率:<span class="colorbalck">{{ reportTargetAll.ysqMonthGrowRate }}%</span>
  183. </p></van-col
  184. >
  185. <van-col span="12"
  186. ><p>
  187. 成长率:<span class="colorbalck">{{ reportTargetAll.ysqQuarterGrowRate }}%</span>
  188. </p></van-col
  189. >
  190. </van-row>
  191. </van-collapse-item>
  192. <van-collapse-item title="质感外墙SAP(千元)" name="4">
  193. <van-row>
  194. <van-col span="12"><span class="leftTitle">本月业绩</span></van-col
  195. ><van-col span="12"><span class="rightTitle">本季业绩</span></van-col>
  196. <van-col span="12"
  197. ><p>
  198. 实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.zgwqMonthAct) }}</span>
  199. </p></van-col
  200. >
  201. <van-col span="12"
  202. ><p>
  203. 实际:<span class="colorbalck">{{
  204. Micrometer(reportTargetAll.zgwqQuarterAct)
  205. }}</span>
  206. </p></van-col
  207. >
  208. <van-col span="12"
  209. ><p>
  210. 达成率:<span class="colorbalck">{{ reportTargetAll.zgwqMonthSuccessRate }}%</span>
  211. </p></van-col
  212. >
  213. <van-col span="12"
  214. ><p>
  215. 达成率:<span class="colorbalck">{{ reportTargetAll.zgwqQuarterSuccessRate }}%</span>
  216. </p></van-col
  217. >
  218. <van-col span="12"
  219. ><p>
  220. 成长率:<span class="colorbalck">{{ reportTargetAll.zgwqMonthGrowRate }}%</span>
  221. </p></van-col
  222. >
  223. <van-col span="12"
  224. ><p>
  225. 成长率:<span class="colorbalck">{{ reportTargetAll.zgwqQuarterGrowRate }}%</span>
  226. </p></van-col
  227. >
  228. </van-row>
  229. </van-collapse-item>
  230. <van-collapse-item name="17" title="超好贴分销店下单">
  231. <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
  232. </van-collapse-item>
  233. <van-collapse-item title="客户开拓" name="6">
  234. <van-row>
  235. <!-- <van-col span="12" v-if="powerGrade>=3"><span class="leftTitle">非片区经销商</span></van-col>-->
  236. <!-- v-if="powerGrade==2"-->
  237. <van-col span="24"><span class="leftTitle">非片客户开发</span></van-col>
  238. <!-- <van-col span="12" v-if="powerGrade>=3"><span class="rightTitle" >TOP70直营家装</span></van-col>-->
  239. <van-col span="24"
  240. ><p>
  241. 全年开发数:<span class="colorbalck">{{
  242. Micrometer(reportTargetAll.customerAct)
  243. }}</span>
  244. </p></van-col
  245. >
  246. <!-- <van-col span="12" v-if="powerGrade>=3"><p>全年目标:<span class="colorbalck">{{reportTargetAll.directCustomerYearTarget}}</span></p></van-col>-->
  247. <!-- <van-col span="24"><p>实际:<span class="colorbalck">{{ Micrometer(reportTargetAll.customerAct) }}</span></p></van-col>-->
  248. <!-- <van-col span="12" v-if="powerGrade>=3"><p>实际:<span class="colorbalck">{{reportTargetAll.directCustomerAct}}</span></p></van-col>-->
  249. <van-col span="24"
  250. ><p>
  251. 全年进度率:<span class="colorbalck">{{ reportTargetAll.customerYearRate }}%</span>
  252. </p></van-col
  253. >
  254. <!-- <van-col span="12" v-if="powerGrade>=3"><p>全年进度率:<span class="colorbalck">{{reportTargetAll.directCustomerYearRate}}%</span></p></van-col>-->
  255. </van-row>
  256. </van-collapse-item>
  257. <!-- <van-collapse-item title="门店异常管理提醒" name="7">-->
  258. <!-- <van-row>-->
  259. <!-- <van-col span="24"><p>未分配点数:<span class="colorbalck">{{reportTargetAll.undistrNum}}</span></p></van-col>-->
  260. <!-- <van-col span="24"><p>已覆盖未排线点数:<span class="colorbalck">{{reportTargetAll.coverNotPlan}}</span></p></van-col>-->
  261. <!-- </van-row>-->
  262. <!-- </van-collapse-item>-->
  263. <van-collapse-item title="上周工作成果" name="8">
  264. <div style="margin-top: -10px">
  265. <div v-for="(item2, index2) in reportContentsList2" :key="index2">
  266. <div v-if="index2 < 7">
  267. <p class="texttitle">
  268. <span class="opint"></span
  269. ><span v-if="!reportTarget.hideWeekDate">{{
  270. weeklyTimeDivision(item2.contentTime, 0)
  271. }}</span
  272. ><span>{{ weeklyTimeDivision(item2.contentTime, 1) }}</span>
  273. </p>
  274. <p>
  275. <span class="colorbalck">上午:</span
  276. >{{ reportContentsList1[index2].weekContentAm }}
  277. </p>
  278. <p>
  279. <span class="colorbalck">下午:</span
  280. >{{ reportContentsList1[index2].weekContentPm }}
  281. </p>
  282. <p class="texttitle texttitle2">实际工作进度</p>
  283. <p><span class="colorbalck">上午:</span>{{ item2.weekContentAm }}</p>
  284. <p><span class="colorbalck">下午:</span>{{ item2.weekContentPm }}</p>
  285. </div>
  286. <p v-if="index2 == 7" class="texttitle"><span class="opint"></span>上周工作重点</p>
  287. <div v-if="index2 == 7" style="padding: 10px 0" class="contentContainer">
  288. <van-field
  289. v-model="reportContentsList1[index2].weekContentSummary"
  290. rows="4"
  291. autosize
  292. readonly
  293. type="textarea" />
  294. </div>
  295. <p v-if="index2 == 7" class="texttitle"><span class="opint"></span>上周工作成果</p>
  296. <div v-if="index2 == 7" style="padding: 10px 0" class="contentContainer">
  297. <van-field
  298. v-model="item2.weekContentSummary"
  299. rows="4"
  300. autosize
  301. readonly
  302. type="textarea" />
  303. </div>
  304. </div>
  305. </div>
  306. </van-collapse-item>
  307. <van-collapse-item title="本周工作规划" name="9">
  308. <div style="margin-top: -10px">
  309. <div v-for="(item, index) in reportContentsList3" :key="index">
  310. <p v-if="index < 7" class="texttitle">
  311. <span class="opint"></span
  312. ><span v-if="!reportTarget.hideWeekDate">{{
  313. weeklyTimeDivision(item.contentTime, 0)
  314. }}</span
  315. ><span>{{ weeklyTimeDivision(item.contentTime, 1) }}</span>
  316. </p>
  317. <p v-if="index < 7"><span class="colorbalck">上午:</span>{{ item.weekContentAm }}</p>
  318. <p v-if="index < 7"><span class="colorbalck">下午:</span>{{ item.weekContentPm }}</p>
  319. <p v-if="index == 7" class="texttitle"><span class="opint"></span>本周工作重点</p>
  320. <div v-if="index == 7" style="padding: 10px 0" class="contentContainer">
  321. <van-field
  322. v-model="item.weekContentSummary"
  323. rows="4"
  324. autosize
  325. readonly
  326. type="textarea" />
  327. </div>
  328. </div>
  329. </div>
  330. </van-collapse-item>
  331. </van-collapse>
  332. <div
  333. class="contentContainer"
  334. v-if="reportTarget.status > 1 || reportTarget.reportRemarks != null">
  335. <p class="texttitle texttitledaily" style="margin-top: 6px">
  336. <span class="opint"></span>
  337. <span v-if="reportTarget.status == 1">待审批</span>
  338. <span v-if="reportTarget.status == 3">审批完成</span>
  339. <span v-if="reportTarget.status == 2">退回重写</span>
  340. <span v-if="reportTarget.status == -1">过期未汇报</span>
  341. <span v-if="reportTarget.status > 1"><{{ ptitle }}审批></span>
  342. </p>
  343. <div style="padding: 10px 0" v-if="reportTarget.status > 1">
  344. <van-rate
  345. v-model="reportTarget.number"
  346. :size="25"
  347. color="#ffd21e"
  348. void-icon="star"
  349. void-color="#eee"
  350. readonly />
  351. <span class="rateText">&nbsp;&nbsp;&nbsp;&nbsp;{{ reportTarget.number }}分</span>
  352. </div>
  353. <div style="padding: 10px 0" v-if="reportTarget.status > 1">
  354. <van-field v-model="successContent" rows="4" autosize readonly type="textarea" />
  355. </div>
  356. </div>
  357. <div class="contentContainer" v-if="reportTarget.reportRemarks != null">
  358. <div>
  359. <div v-for="(item, index) in reportTarget.reportRemarks" :key="index">
  360. <p class="contentContainerTitle">
  361. <template v-if="item.deptName">{{ item.deptName }}-</template>{{ item.postName }} -
  362. {{ item.nickName }}的点评
  363. </p>
  364. <div style="padding: 10px 0">
  365. <van-field v-model="item.remarkContent" rows="4" autosize readonly type="textarea" />
  366. </div>
  367. <!-- <p style="text-align: right">点评时间:{{ item.createTime }}</p> -->
  368. </div>
  369. </div>
  370. </div>
  371. <div class="contentContainer">
  372. <p class="contentContainerTitle">点评</p>
  373. <div style="padding: 10px 0">
  374. <van-field
  375. v-model="managerRemarkContent"
  376. rows="4"
  377. autosize
  378. maxlength="800"
  379. show-word-limit
  380. type="textarea"
  381. :formatter="formatter" />
  382. </div>
  383. </div>
  384. </div>
  385. <div class="lineGrey"></div>
  386. <div class="contentborder">
  387. <van-button type="info" size="small" plain class="Btn1" @click="submint">提交点评</van-button>
  388. </div>
  389. <br /><br />
  390. <!-- <div class="envelopes" @click="openEnterpriseChat" >-->
  391. <!-- <img :src="envelopes">-->
  392. <!-- <p>红包奖励</p>-->
  393. <!-- </div>-->
  394. <br /><br />
  395. <br /><br />
  396. </div>
  397. </template>
  398. <script>
  399. import history from '@/assets/Icon/history.png';
  400. import { loginLog, insertRemark, getDetailById, updateReport } from '@/api/index';
  401. import envelopes from '@/assets/envelopes.png';
  402. import axios from 'axios';
  403. import createStoreBJ from '@/views/componentsTarget/createStoreBJ';
  404. import ZYPlaceOrder from '@/views/componentsTarget/ZYPlaceOrder';
  405. import performanceSAP from '@/views/componentsTarget/performanceSAP';
  406. import ZYSAP from '@/views/componentsTarget/ZYSAP';
  407. import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
  408. export default {
  409. name: 'home',
  410. components: {
  411. createStoreBJ,
  412. ZYPlaceOrder,
  413. performanceSAP,
  414. ZYSAP,
  415. veryGoodPlaceOrder,
  416. },
  417. data() {
  418. return {
  419. envelopes: envelopes,
  420. show: true,
  421. num: 0,
  422. todayGoal: {},
  423. title: '',
  424. ptitle: '',
  425. progressWidth: 0,
  426. history: history,
  427. imgArr: [],
  428. activeNames: [
  429. '1',
  430. '2',
  431. '3',
  432. '4',
  433. '5',
  434. '6',
  435. '7',
  436. '8',
  437. '9',
  438. '11',
  439. '12',
  440. '16',
  441. '17',
  442. '27',
  443. '28',
  444. '29',
  445. ],
  446. powerGrade: '',
  447. value: 2,
  448. timeList: [],
  449. reportTargetAll: {},
  450. Content: '',
  451. number: '',
  452. successContent: '',
  453. reportContentsList1: [],
  454. reportContentsList2: [],
  455. reportContentsList3: [],
  456. updateReport: {},
  457. reportTarget: {},
  458. managerRemarkContent: '',
  459. isDiy: false,
  460. type: '-1',
  461. JZQuota: false,
  462. };
  463. },
  464. created() {
  465. this.powerGrade = localStorage.getItem('powerGrade');
  466. this.isDiy = localStorage.getItem('isDiy');
  467. this.getDetailById();
  468. },
  469. watch: {
  470. $route(to, from) {
  471. this.powerGrade = localStorage.getItem('powerGrade');
  472. this.isDiy = localStorage.getItem('isDiy');
  473. if (to.path == '/weeklyHistoricalDetils') {
  474. this.getDetailById();
  475. }
  476. },
  477. },
  478. methods: {
  479. openEnterpriseChat(val) {
  480. let loading1 = this.$toast.loading({
  481. duration: 0,
  482. message: '加载中...',
  483. forbidClick: true,
  484. });
  485. let url = window.location.href;
  486. let that = this;
  487. let wx = this.wx;
  488. let qiyeData;
  489. var userIds = this.reportTarget.reportContents[0].createBy;
  490. const instance = axios.create();
  491. instance.defaults.headers.common['userId'] = localStorage.getItem('loginName');
  492. instance
  493. .get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket', {
  494. params: {
  495. url: url,
  496. },
  497. })
  498. .then((response) => {
  499. if (response.status == 200) {
  500. loading1.clear();
  501. qiyeData = response.data.data;
  502. wx.config({
  503. beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
  504. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  505. appId: qiyeData.appId, // 必填,企业微信的corpID
  506. timestamp: qiyeData.timestamp, // 必填,生成签名的时间戳
  507. nonceStr: qiyeData.nonceStr, // 必填,生成签名的随机串
  508. signature: qiyeData.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
  509. jsApiList: ['ready', 'openEnterpriseChat'], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
  510. });
  511. wx.ready(function () {
  512. wx.openEnterpriseChat({
  513. userIds: userIds,
  514. groupName: '我的红包群', // 会话名称。单聊时该参数传入空字符串""即可。localStorage.getItem("loginName")
  515. chatId: '', //CHATID 若要打开已有会话,需指定此参数。如果是新建会话,chatId必须为空串
  516. success: function (res) {
  517. var chatId = res.chatId; //返回当前群聊ID,仅当使用agentConfig注入该接口权限时才返回chatId
  518. },
  519. fail: function (res) {
  520. if (res.errMsg.indexOf('function not exist') > -1) {
  521. alert('版本过低请升级');
  522. }
  523. },
  524. });
  525. });
  526. } else {
  527. this.$toast.fail(dataList.msg);
  528. }
  529. });
  530. },
  531. formatter(value) {
  532. return value.replace(
  533. /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
  534. ''
  535. );
  536. },
  537. submint() {
  538. let loading1 = this.$toast.loading({
  539. duration: 0,
  540. message: '数据提交中...',
  541. forbidClick: true,
  542. });
  543. if (this.managerRemarkContent.trim() == '') {
  544. this.$toast('点评内容未填写');
  545. return false;
  546. }
  547. if (this.managerRemarkContent.length > 800) {
  548. this.$toast('点评内容超过800字');
  549. return false;
  550. }
  551. var remak = {
  552. remarkContent: this.managerRemarkContent,
  553. reportId: this.$route.query.reportId,
  554. };
  555. insertRemark(remak).then((res) => {
  556. loading1.clear();
  557. if (res.code == 200) {
  558. this.$dialog
  559. .alert({
  560. title: '系统提示',
  561. message: '提交成功',
  562. })
  563. .then(() => {
  564. this.managerRemarkContent = '';
  565. this.getDetailById();
  566. });
  567. } else {
  568. this.$toast.fail(res.msg);
  569. }
  570. });
  571. },
  572. getDetailById() {
  573. let loading1 = this.$toast.loading({
  574. duration: 0,
  575. message: '加载中...',
  576. forbidClick: true,
  577. });
  578. getDetailById({ reportId: this.$route.query.reportId }).then((res) => {
  579. loading1.clear();
  580. if (res.code == 200) {
  581. this.JZQuota = false;
  582. if (res.data.postType == 'JZ') {
  583. this.JZQuota = true;
  584. }
  585. var dayTime = res.data.date;
  586. this.type = res.data.userType;
  587. this.title =
  588. res.data.deptName + '-' + res.data.postName + '-' + res.data.nickName + '的周报';
  589. this.ptitle = res.data.pdeptName + '-' + res.data.ppostName + '-' + res.data.pnickName;
  590. this.timeList = this.parseTimeParagraph(
  591. dayTime.slice(0, 4) + '-' + dayTime.slice(4, 6) + '-' + dayTime.slice(6, 8)
  592. );
  593. this.reportTargetAll = res.data.reportTargetAll;
  594. this.reportTarget = res.data;
  595. this.reportContents = res.data.reportContents;
  596. var reportContentsList1 = [];
  597. var reportContentsList2 = [];
  598. var reportContentsList3 = [];
  599. var reportContentsdata = res.data.reportContents;
  600. if (res.data.status == 3) {
  601. this.successContent = res.data.successContent;
  602. } else {
  603. this.successContent = res.data.failContent;
  604. }
  605. for (var i = 0; i < reportContentsdata.length; i++) {
  606. if (reportContentsdata[i].type == '1') {
  607. reportContentsList1.push(reportContentsdata[i]);
  608. }
  609. if (reportContentsdata[i].type == '2') {
  610. reportContentsList2.push(reportContentsdata[i]);
  611. }
  612. if (reportContentsdata[i].type == '3') {
  613. reportContentsList3.push(reportContentsdata[i]);
  614. }
  615. }
  616. var ln1 = reportContentsList1.length;
  617. var ln2 = reportContentsList2.length;
  618. if (reportContentsList1.length < reportContentsList2.length) {
  619. var len2 = ln2 - ln1;
  620. for (var x = 0; x < len2; x++) {
  621. reportContentsList1.push({
  622. contentTime: '',
  623. weekContentAm: '',
  624. weekContentPm: '',
  625. });
  626. }
  627. }
  628. this.reportContentsList1 = reportContentsList1;
  629. this.reportContentsList2 = reportContentsList2;
  630. this.reportContentsList3 = reportContentsList3;
  631. }
  632. });
  633. },
  634. onClickLeft() {
  635. this.$router.go(-1);
  636. },
  637. },
  638. };
  639. </script>
  640. <style scoped>
  641. .container {
  642. margin: 10px;
  643. }
  644. .container .van-collapse-item {
  645. margin-bottom: 10px;
  646. border-radius: 6px;
  647. overflow: hidden;
  648. }
  649. .linep p {
  650. margin: 14px 0 0 0;
  651. font-size: 14px;
  652. color: #666;
  653. padding-left: 6px;
  654. }
  655. .linep .texttitle {
  656. color: #0057ba;
  657. position: relative;
  658. padding-left: 10px;
  659. margin-top: 16px;
  660. }
  661. .linep .texttitledaily {
  662. color: #000;
  663. position: relative;
  664. padding-left: 10px;
  665. }
  666. .linep .texttitle2 {
  667. padding-left: 6px;
  668. }
  669. .linep .texttitle .opint {
  670. position: absolute;
  671. left: 0px;
  672. top: 6px;
  673. margin-right: 6px;
  674. display: inline-block;
  675. width: 6px;
  676. height: 6px;
  677. border-radius: 10px;
  678. background-color: #0057ba;
  679. }
  680. .linep .texttitledaily .opint {
  681. position: absolute;
  682. left: 0px;
  683. top: 6px;
  684. margin-right: 6px;
  685. display: inline-block;
  686. width: 6px;
  687. height: 6px;
  688. border-radius: 10px;
  689. background-color: #0057ba;
  690. }
  691. .leftTitle {
  692. background-color: #a6c9f1;
  693. color: #fff;
  694. display: inline-block;
  695. padding: 0 4px;
  696. border-radius: 2px;
  697. }
  698. .Btn1 {
  699. display: block;
  700. width: 100%;
  701. border-radius: 6px;
  702. color: #fff !important;
  703. background-color: #0057ba;
  704. border: 1px solid #0057ba;
  705. height: 44px;
  706. }
  707. .rightTitle {
  708. background-color: #ffb5bb;
  709. color: #fff;
  710. display: inline-block;
  711. padding: 0 4px;
  712. border-radius: 2px;
  713. }
  714. </style>
  715. <style>
  716. .linep .van-cell__title {
  717. color: #1e5398;
  718. font-weight: 500;
  719. }
  720. .linep .contentContainer {
  721. background-color: white;
  722. border-radius: 8px;
  723. padding: 10px 16px;
  724. margin-bottom: 10px;
  725. }
  726. .linep .contentContainer .contentContainerTitle {
  727. color: #222;
  728. margin-top: 10px;
  729. }
  730. .linep .contentContainer .contentContainerTitle span {
  731. font-size: 12px;
  732. color: #333;
  733. }
  734. .linep .contentContainer .van-field__control {
  735. background-color: #ebf4ff;
  736. padding: 10px;
  737. border-radius: 8px;
  738. }
  739. .linep .contentContainer .van-cell {
  740. padding: 0;
  741. }
  742. .van-dialog__confirm,
  743. .van-dialog__confirm:active {
  744. color: #0057ba;
  745. }
  746. </style>