mainPointsDetail.vue 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722
  1. <template>
  2. <view class="mainPointsDetailPage">
  3. <tm-modal v-if="showSelectModal" @click="clickModalhandle">
  4. <view class="checkItemResultModal">
  5. <view class="modalContent">
  6. <view class="modalBar">请选择查核结果</view>
  7. <scroll-view v-if="data.checkModelName != '访谈'" class="scroll" scroll-y="true">
  8. <view v-for="item in checkItemResultList"
  9. :class="[checkedSelectResultListIds.includes(item.id)?'list on':'list']" :key="item.id"
  10. @click.stop="selectResultHandle(item)">
  11. <image class="checkIcon"
  12. :src="`../../static/${!moreDeduction?'check-radio.png':'check-checkbox.png'}`" mode="">
  13. </image>
  14. {{item.resultName}}
  15. </view>
  16. </scroll-view>
  17. <scroll-view v-if="data.checkModelName == '访谈'" class="scroll" scroll-y="true">
  18. <view v-for="item in checkItemResultList"
  19. :class="[checkedSelectResultListIds[currentEditTextAreaIndex]&&checkedSelectResultListIds[currentEditTextAreaIndex].includes(item.id)?'list on':'list']"
  20. :key="item.id" @click.stop="selectResultHandle(item)">
  21. <image class="checkIcon"
  22. :src="`../../static/${!moreDeduction?'check-radio.png':'check-checkbox.png'}`" mode="">
  23. </image>
  24. {{item.resultName}}
  25. </view>
  26. </scroll-view>
  27. <view class="comfirmBtn" @click="commitSelectResult">确定</view>
  28. </view>
  29. </view>
  30. </tm-modal>
  31. <scroll-view scroll-y="true" class="scroll-y">
  32. <view class="checkItem">
  33. <view class="chBg">
  34. <image src="../../static/chahexiang-bg.png" mode="" class="img"></image>
  35. <text class="title">查核项</text>
  36. </view>
  37. <image src="../../static/tuli.png" mode="" class="tlImg" @click="toTuLi"></image>
  38. <view class="chContent">
  39. <view class="checkItemName">{{ data.checkItemName ? data.checkItemName : "" }}</view>
  40. <view class="checkPointName">{{ data.checkPointName ? data.checkPointName : "" }}</view>
  41. <view class="cont">
  42. <view class="floatLeft other">
  43. <view class="letterTitle2">{{ data.deptName ? data.deptName : "" }}</view>
  44. <view class="letterTitle">查核单位</view>
  45. </view>
  46. <view class="floatLeft borderLine"></view>
  47. <view class="floatLeft other">
  48. <view class="letterTitle2">{{ data.checkModelName ? data.checkModelName : "" }}</view>
  49. <view class="letterTitle">查核方式</view>
  50. </view>
  51. <view class="floatLeft borderLine"></view>
  52. <view class="floatLeft other">
  53. <view class="letterTitle2">{{ data.lastResult ? data.lastResult : "" }}</view>
  54. <view class="letterTitle">上次结果</view>
  55. </view>
  56. <view class="floatLeft borderLine"></view>
  57. <view class="floatLeft other">
  58. <view class="letterTitle2">{{ data.checkResult ? data.checkResult : "" }}</view>
  59. <view class="letterTitle">本次结果</view>
  60. </view>
  61. </view>
  62. <view class="checked">
  63. <view class="checked-checkItem" v-for="item in checkConfiglist" :key="item.attr"
  64. @click="checkedOne(item)" :style="
  65. Index == item.attr
  66. ? { backgroundColor: '#3377FF', color: '#fff' }
  67. : { backgroundColor: '#EBEFF7' }
  68. ">{{item.attr}}
  69. <view v-if="lastIndex == item.attr">
  70. <image src="../../static/shangci.png" mode="" class="img"></image>
  71. <text class="lastName">上次</text>
  72. </view>
  73. </view>
  74. </view>
  75. <view class="more" @click="toHistory">
  76. <text>查看改善历史</text>
  77. <view class="moreImg">
  78. <image src="../../static/blue-arrow.png" mode="" class="moreImg2"></image>
  79. </view>
  80. </view>
  81. <view class="multipleResponsible">
  82. <view class="inner" @click="toSelectResponsible">
  83. <text class="label">当事人</text>
  84. <input type="text" disabled v-model="checkedResponsibleList.join(',')"
  85. placeholder="请选择当事人(可多选)" class="value" placeholder-class="valuePlaceholder" />
  86. <image class="arrow" src="../../static/incon-more.png" mode=""></image>
  87. </view>
  88. </view>
  89. <view class="score">
  90. <view class="box">
  91. <text class="lable">总分</text>
  92. <text class="totalScore">{{totalScore}}</text>
  93. </view>
  94. <view class="box">
  95. <text class="lable">本次得分</text>
  96. <text class="currentScore">{{currentScore>0?currentScore:0}}</text>
  97. </view>
  98. </view>
  99. <view class="inputScore">
  100. <text class="label">本项扣分</text>
  101. <view class="textValue" v-if="!ifInputScore" @click='changeToInputScore'>{{deductPoint}}</view>
  102. <input class="value" v-if="ifInputScore" @input="onInputScore" focus='true' auto-blur='true'
  103. @blur='inputOnBlur' type="number" v-model="inputScore" placeholder-class="placeholder" />
  104. </view>
  105. </view>
  106. </view>
  107. <view v-if="data.checkModelName == '访谈'" class="talk">
  108. <view v-for="(item, i) in talkList">
  109. <view class="talkTitle">
  110. <text>访谈内容{{ i + 1 }}{{ i == 0 ? "" : "(访谈人员:护士、医生)" }}</text>
  111. <text v-if="i != 0" class="del" @click="del(i)">删除</text>
  112. </view>
  113. <view>
  114. <view class="talkResult">
  115. <view class="seeResultFloorOne">
  116. <text class="seeName">查核结果</text>
  117. <view class="plusAction" v-if="checkItemResultList.length>0"
  118. @click="openSelectModal(i)">
  119. <image class="plusIcon" src="../../static/icon-add.png" mode=""></image>
  120. <text class="threePoint">缺陷</text>
  121. </view>
  122. </view>
  123. <text class="clear" @click="clearResult(true,i)">清空</text>
  124. <textarea maxlength="300" class="seeTextarea" value="" placeholder="请输入"
  125. v-model="item.talkResult" @blur="changeTextarea($event, i)"></textarea>
  126. </view>
  127. <view class="talkImg" @click="imgClick(i)">
  128. <tm-upload-img label="上传图片" :filePaths="item.filePath" :isMultiple="true" :pickIndex="i"
  129. @changeFilePaths="changeFilePaths2" />
  130. </view>
  131. </view>
  132. </view>
  133. </view>
  134. <view v-else class="see">
  135. <view class="seeResult">
  136. <view class="seeResultFloorOne">
  137. <text class="seeName">查核结果</text>
  138. <view class="plusAction" v-if="checkItemResultList.length>0" @click="openSelectModal">
  139. <image class="plusIcon" src="../../static/icon-add.png" mode=""></image>
  140. <text class="threePoint">缺陷</text>
  141. </view>
  142. </view>
  143. <text class="clear" @click="clearResult(false)">清空</text>
  144. <textarea maxlength="300" class="seeTextarea" placeholder="请输入" v-model="recordList[0].seeResult"
  145. @blur="changeTextarea2"></textarea>
  146. </view>
  147. <view class="seeImg">
  148. <tm-upload-img label="上传图片" :filePaths="filePath" :isMultiple="true"
  149. @changeFilePaths="changeFilePaths" />
  150. </view>
  151. </view>
  152. <button class="insert" @click="insert" v-if="data.checkModelName == '访谈'">
  153. + 增加一条记录
  154. </button>
  155. </scroll-view>
  156. <!-- <button type="primary" class="sureDetail" @click="sureDetail" v-if="data.display?data.display:false">完成</button> -->
  157. <view class="bottomMenuGroup">
  158. <view class="menuBtn" @click="goToPrevPage">
  159. <image class="threeLineMenuIcon" src="/static/threeLineMenu.png"></image>
  160. </view>
  161. <view class="prevBtn" @click="switchItem(1)">下一项</view>
  162. <view class="nextBtn" @click="sureDetail('back')" v-if="data.display?data.display:false">完成</view>
  163. </view>
  164. </view>
  165. </template>
  166. <script>
  167. import {
  168. _goBackFresh
  169. } from '../../utils/compatible.js';
  170. import situationPreviewVue from '../creatingSituations/components/situationPreview.vue';
  171. export default {
  172. data() {
  173. return {
  174. value: '',
  175. showSelectModal: false,
  176. data: {}, //详情数据
  177. lastIndex: null, //上次选中的结果
  178. Index: null, //点击修改本次选中样式
  179. filePath: [],
  180. recordList: [{
  181. seeResult: "",
  182. filePath: []
  183. }],
  184. talkLength: 1,
  185. talkList: [{
  186. talkResult: "",
  187. filePath: []
  188. }],
  189. editIndex: null,
  190. resultConfigList: [],
  191. id: "",
  192. checkPointId: "",
  193. itemBelongGroup: [],
  194. itemId: '',
  195. currentEditTextAreaIndex: -1, //当前编辑的查核结果下标
  196. checkItemResultList: [], //查核结果说明下拉列表
  197. checkedSelectResultList: [], //下拉结果选中集合
  198. checkedSelectResultListIds: [],
  199. currentSelect: '',
  200. checkItemScore: null, //查核选中的分数
  201. checkItemValue: null, //查核选中的分数占比
  202. checkConfiglist: [], //查核情况可配置列表
  203. totalScore: 0, //总分
  204. currentScore: 0, //当前得分
  205. inputScore: null, //手动填写分值
  206. selectedScore: 0, //缺失项分值
  207. checkedResponsibleList: [],
  208. deptId: '', //病区id
  209. checkedResponsibleData: [],
  210. checkedSelectResultListData: [],
  211. multiSelectScore: [],
  212. deductPoint: 0, //本次扣分
  213. currentCheckedTab: null, //当前选中的查核tab
  214. moreDeduction: false, //缺陷项是否多选
  215. ifInputScore: false, //是否手动干预分值
  216. iOrder:1, //查核项明细中,下一步顺序是否按要点结束,1:按要点结束;2:按顺序结束
  217. situationType:0,
  218. };
  219. },
  220. created() {
  221. this.nowPermission = uni.getStorageSync('nowPermission');
  222. },
  223. onShow() {
  224. const {
  225. responsibleList
  226. } = this.$store.state;
  227. this.checkedResponsibleData = responsibleList.checkedResponsibleList;
  228. this.checkedResponsibleList = responsibleList.checkedResponsibleList.map(item => item.main);
  229. },
  230. computed: {},
  231. watch: {
  232. checkedResponsibleList: function() {
  233. const {
  234. responsibleList
  235. } = this.$store.state;
  236. return responsibleList.checkedResponsibleList.map(item => item.main);
  237. },
  238. checkedResponsibleData() {
  239. const {
  240. responsibleList
  241. } = this.$store.state;
  242. return responsibleList.checkedResponsibleList;
  243. },
  244. selectedScore: function(newVal, oldVal) {
  245. this.scoreCounter()
  246. },
  247. checkItemScore: function(newVal) {
  248. this.scoreCounter()
  249. },
  250. deductPoint: function(newVal, oldVal) {
  251. this.currentScore = this.totalScore - newVal
  252. }
  253. },
  254. mounted() {
  255. this.checkTaskDetail(this.id);
  256. this.getPeizhiList();
  257. },
  258. onBackPress() {
  259. this.$store.commit('checkMainPoints/comChangeState', { //刷新前一页数据
  260. key: 'ifReloadPageData',
  261. data: true
  262. });
  263. },
  264. methods: {
  265. scoreCounter() {
  266. if (this.checkItemValue == -1) {
  267. //清空分数
  268. this.deductPoint = 0;
  269. return
  270. }
  271. if (this.inputScore) {
  272. this.deductPoint = Number(this.inputScore) + this.selectedScore
  273. } else {
  274. this.deductPoint = this.selectedScore + this.checkItemValue
  275. }
  276. },
  277. changeToInputScore() {
  278. this.ifInputScore = true;
  279. },
  280. inputOnBlur() {
  281. this.ifInputScore = false;
  282. // this.inputScore = null;
  283. },
  284. onInputScore(e) {
  285. this.deductPoint = e.target.value;
  286. },
  287. //查核结果清空操作
  288. clearResult(ifMulti, index) {
  289. if (ifMulti) {
  290. //多个查核结果组件时
  291. this.talkList[index].talkResult = '';
  292. if (this.multiSelectScore[index]) {
  293. this.selectedScore = this.selectedScore - this.multiSelectScore[index];
  294. }
  295. this.checkedSelectResultListIds.splice(index, 1, []);
  296. this.checkedSelectResultList.splice(index, 1, []);
  297. this.checkedSelectResultListData.splice(index, 1, []);
  298. this.multiSelectScore[index] = 0;
  299. this.currentEditTextAreaIndex = -1;
  300. } else {
  301. this.recordList[0].seeResult = '';
  302. this.checkedSelectResultListIds = [];
  303. this.checkedSelectResultList = [];
  304. this.checkedSelectResultListData = [];
  305. this.selectedScore = 0;
  306. }
  307. },
  308. clickModalhandle() {
  309. this.showSelectModal = false;
  310. this.currentEditTextAreaIndex = -1;
  311. },
  312. openSelectModal(index) {
  313. if (index >= 0) {
  314. this.currentEditTextAreaIndex = index;
  315. }
  316. this.showSelectModal = true;
  317. },
  318. //跳转选择当事人
  319. toSelectResponsible() {
  320. uni.navigateTo({
  321. url: `/pages/responsibleList/responsibleList?deptId=${this.deptId}&checkId=${this.id}`,
  322. });
  323. },
  324. selectResultHandle(item) {
  325. if (this.data.checkModelName == '访谈') {
  326. const currentIndex = this.currentEditTextAreaIndex;
  327. if (!this.moreDeduction) {
  328. //缺陷项单选
  329. this.checkedSelectResultListIds.splice(currentIndex, 1, [item.id]);
  330. this.checkedSelectResultList.splice(currentIndex, 1, [item.resultName]);
  331. this.checkedSelectResultListData.splice(currentIndex, 1, [item]);
  332. return;
  333. }
  334. if (this.checkedSelectResultListIds[currentIndex] && this.checkedSelectResultListIds[currentIndex]
  335. .includes(item.id)) {
  336. const tempIdsArr = JSON.parse(JSON.stringify(this.checkedSelectResultListIds[currentIndex]));
  337. const tempArr = JSON.parse(JSON.stringify(this.checkedSelectResultList[currentIndex]));
  338. const tempArrData = JSON.parse(JSON.stringify(this.checkedSelectResultListData[currentIndex]));
  339. tempIdsArr.splice(tempIdsArr.indexOf(item.id), 1);
  340. tempArr.splice(tempArr.indexOf(item.resultName), 1);
  341. tempArrData.splice(tempArrData.indexOf(item.id), 1);
  342. this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
  343. this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
  344. this.checkedSelectResultListData.splice(currentIndex, 1, tempArrData);
  345. } else {
  346. if (!Array.isArray(this.checkedSelectResultListIds[currentIndex])) this.checkedSelectResultListIds[
  347. currentIndex] = [];
  348. if (!Array.isArray(this.checkedSelectResultList[currentIndex])) this.checkedSelectResultList[
  349. currentIndex] = [];
  350. if (!Array.isArray(this.checkedSelectResultListData[currentIndex])) this
  351. .checkedSelectResultListData[currentIndex] = [];
  352. const tempIdsArr = this.checkedSelectResultListIds[currentIndex].concat([item.id]);
  353. const tempArr = this.checkedSelectResultList[currentIndex].concat([item.resultName]);
  354. const tempArrData = this.checkedSelectResultListData[currentIndex].concat([item]);
  355. this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
  356. this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
  357. this.checkedSelectResultListData.splice(currentIndex, 1, tempArrData);
  358. }
  359. } else {
  360. if (!this.moreDeduction) {
  361. //缺陷项单选
  362. this.checkedSelectResultListIds = [item.id];
  363. this.checkedSelectResultList = [item.resultName];
  364. this.checkedSelectResultListData = [item];
  365. return;
  366. }
  367. // 缺陷项多选
  368. if (this.checkedSelectResultListIds.includes(item.id)) {
  369. const tempIdsArr = this.checkedSelectResultListIds;
  370. const tempArr = this.checkedSelectResultList;
  371. const tempArrData = this.checkedSelectResultListData;
  372. tempIdsArr.splice(tempIdsArr.indexOf(item.id), 1);
  373. tempArr.splice(tempArr.indexOf(item.resultName), 1);
  374. tempArrData.splice(tempArrData.findIndex(t => t.id == item.id), 1);
  375. this.checkedSelectResultListIds = tempIdsArr;
  376. this.checkedSelectResultList = tempArr;
  377. this.checkedSelectResultListData = tempArrData;
  378. } else {
  379. this.checkedSelectResultListIds.push(item.id);
  380. this.checkedSelectResultList.push(item.resultName);
  381. this.checkedSelectResultListData.push(item);
  382. }
  383. }
  384. },
  385. commitSelectResult() {
  386. const _commitFunc = () => {
  387. if (this.data.checkModelName == '访谈') {
  388. const tempArr = this.checkedSelectResultListData[this.currentEditTextAreaIndex].map(item =>
  389. item.percentScore);
  390. const tempScore = tempArr.reduce((prev, cur) => {
  391. return prev + cur;
  392. }, 0);
  393. this.talkList[this.currentEditTextAreaIndex].talkResult = this.checkedSelectResultList[this
  394. .currentEditTextAreaIndex].join(',');
  395. this.multiSelectScore[this.currentEditTextAreaIndex] = tempScore;
  396. this.selectedScore = this.multiSelectScore.reduce((prev, cur) => (prev + cur), 0);
  397. } else {
  398. const tempArr = this.checkedSelectResultListData.map(item => item.percentScore);
  399. const tempScore = tempArr.reduce((prev, cur) => {
  400. return prev + cur;
  401. }, 0);
  402. this.recordList[0].seeResult = this.checkedSelectResultList.join(',');
  403. this.selectedScore = tempScore;
  404. }
  405. }
  406. _commitFunc();
  407. this.showSelectModal = false;
  408. },
  409. checkTaskDetail(id) {
  410. this.$store.dispatch({
  411. type: "mainPointsDetail/commActions",
  412. payload: {
  413. key: this.isZichaDucha ? "zichaduchaCheckTaskDetail" : "checkTaskDetail",
  414. data: {
  415. id: id,
  416. },
  417. },
  418. }).then((res) => {
  419. uni.$once('未在查核规定时间内', function(data) {
  420. uni.navigateBack();
  421. });
  422. this.id = id;
  423. this.deptId = res.deptId;
  424. //再次编辑回显
  425. const filePath = res.checkResultTxt ? JSON.parse(res.checkResultTxt) : [];
  426. this.filePath = filePath[0] && filePath[0].checkResultUrl != '' ? filePath[0].checkResultUrl
  427. .split(',') : [];
  428. this.Index = res.checkResult;
  429. this.totalScore = res.totalScore;
  430. this.currentScore = res.checkResult?res.score:res.totalScore;
  431. this.deductPoint = res.deductPoint;
  432. this.moreDeduction = res.moreDeduction;
  433. //this.iOrder=res.checkOrder;
  434. if (res.checkResultRequestList && res.checkResultRequestList.length > 0) {
  435. if (res.checkModelName == '访谈') {
  436. this.talkList = res.checkResultRequestList.map((item, currentIndex) => {
  437. const arr = item.checkResultDescribe.split(',');
  438. const tempResult = this.checkItemResultList.filter(v => arr.includes(v
  439. .resultName));
  440. if (!Array.isArray(this.checkedSelectResultListIds[currentIndex])) this
  441. .checkedSelectResultListIds[currentIndex] = [];
  442. if (!Array.isArray(this.checkedSelectResultList[currentIndex])) this
  443. .checkedSelectResultList[currentIndex] = [];
  444. if (!Array.isArray(this.checkedSelectResultListData[currentIndex])) this
  445. .checkedSelectResultListData[currentIndex] = [];
  446. const tempIdsArr = this.checkedSelectResultListIds[currentIndex].concat(
  447. tempResult.map(item => item.id));
  448. const tempArr = this.checkedSelectResultList[currentIndex].concat(
  449. tempResult.map(item => item.resultName));
  450. this.checkedSelectResultListIds.splice(currentIndex, 1, tempIdsArr);
  451. this.checkedSelectResultList.splice(currentIndex, 1, tempArr);
  452. this.checkedSelectResultListData.splice(currentIndex, 1, tempResult);
  453. const tempArrFull = this.checkedSelectResultListData[currentIndex].map(
  454. item => item.percentScore);
  455. const tempScore = tempArrFull.reduce((prev, cur) => {
  456. return prev + cur;
  457. }, 0);
  458. this.multiSelectScore[currentIndex] = tempScore;
  459. return {
  460. talkResult: item.checkResultDescribe,
  461. filePath: item.checkResultUrl != '' ? item.checkResultUrl.split(',') :
  462. []
  463. }
  464. });
  465. //设置回显分数
  466. // this.selectedScore = this.multiSelectScore.reduce((prev, cur) => (prev + cur), 0);
  467. } else {
  468. let filePath = res.checkResultTxt ? JSON.parse(res.checkResultTxt) : [];
  469. this.filePath = filePath[0] && filePath[0].checkResultUrl != '' ? filePath[0]
  470. .checkResultUrl
  471. .split(',') : [];
  472. if (this.isZichaDucha) {
  473. //自查督查回显图片
  474. this.filePath = res.checkResultRequestList[0].checkResultUrl.length>0?res.checkResultRequestList[0].checkResultUrl.split(','):[];
  475. }
  476. const arr = res.checkResultRequestList[0].checkResultDescribe ? res
  477. .checkResultRequestList[0].checkResultDescribe.split(',') : [];
  478. const tempResult = this.checkItemResultList.filter(v => arr.includes(v.resultName));
  479. const tempIds = tempResult.map(item => item.id);
  480. const scores = tempResult.map(item => item.percentScore);
  481. const tempScore = scores.reduce((prev, cur) => (prev + cur), 0);
  482. this.recordList[0].seeResult = res.checkResultRequestList[0].checkResultDescribe;
  483. this.checkedSelectResultListIds = tempIds;
  484. this.checkedSelectResultList = res.checkResultRequestList[0].checkResultDescribe ? res
  485. .checkResultRequestList[0].checkResultDescribe.split(',') : [];
  486. this.checkedSelectResultListData = tempResult;
  487. }
  488. }
  489. //用于当时人页面回显
  490. if (res.responsibleUserName || res.responseUserName) {
  491. //同时适配自查督查
  492. const tempResponsibleUserName = res.responsibleUserName ? res.responsibleUserName.split(
  493. ',') : res.responseUserName.split(',');
  494. const tempResponsibleUserId = res.responsibleUserId ? res.responsibleUserId.split(',') :
  495. res.responseUserId.split(',');
  496. this.checkedResponsibleList = tempResponsibleUserName;
  497. const arr = tempResponsibleUserName.map((item, index) => ({
  498. main: item,
  499. id: parseInt(tempResponsibleUserId[index])
  500. }));
  501. this.$store.commit('responsibleList/updateCheckedResponsibleList', arr);
  502. } else {
  503. this.checkedResponsibleList = [];
  504. this.$store.commit('responsibleList/updateCheckedResponsibleList', []);
  505. }
  506. if (res) {
  507. console.log({
  508. res
  509. });
  510. this.data = this.isZichaDucha ? {
  511. ...res,
  512. lastResult: res.lastResultName,
  513. checkResult: res.checkResultName
  514. } : res;
  515. console.log('this.data',this.data);
  516. if (res && res.lastResult == "不适用") {
  517. // this.lastIndex = 1;
  518. this.lastIndex = res.lastResult;
  519. } else if (res && res.lastResult == "无缺失") {
  520. this.lastIndex = res.lastResult;
  521. } else if (res && res.lastResult == "主要缺失") {
  522. this.lastIndex = res.lastResult;
  523. } else if (res && res.lastResult == "次要缺失") {
  524. this.lastIndex = res.lastResult;
  525. } else if (res && res.lastResult == "观察事项") {
  526. this.lastIndex = res.lastResult;
  527. } else {
  528. this.lastIndex = 0;
  529. }
  530. }
  531. });
  532. },
  533. getPeizhiList() {
  534. this.$store.dispatch({
  535. type: "configure/commActions",
  536. payload: {
  537. key: "getResultConfig",
  538. },
  539. }).then((res) => {
  540. this.resultConfigList = res ? res : [];
  541. });
  542. },
  543. //查核点击回调
  544. checkedOne(data) {
  545. const parsedData = JSON.parse(JSON.stringify(data));
  546. this.currentCheckedTab = data;
  547. this.Index = parsedData.attr;
  548. this.data.checkResult = parsedData.attr;
  549. this.checkItemScore = parsedData.itemGetScore;
  550. this.checkItemValue = parsedData.value;
  551. this.calScore = parsedData.calScore;
  552. if (!this.inputScore) { //没有手输调整过的才可以修改
  553. this.checkItemScore = parsedData.itemGetScore;
  554. }
  555. },
  556. /**
  557. * @param {{
  558. files
  559. index,
  560. }} fileInfo
  561. files:文件集合
  562. index:当前编辑的下标
  563. */
  564. changeFilePaths({
  565. files,
  566. index
  567. }) {
  568. let _recordList = [...this.recordList];
  569. _recordList[index].filePath = files;
  570. this.filePath = _recordList[0].filePath;
  571. },
  572. insert() {
  573. let list = [...this.talkList];
  574. if (list.length < 10) {
  575. list.push({
  576. talkResult: "",
  577. filePath: []
  578. });
  579. this.talkList = list;
  580. }
  581. },
  582. del(index) {
  583. let list = [...this.talkList];
  584. let list2 = [];
  585. //清空该项数据
  586. this.clearResult(true, index);
  587. for (let i = 0; i < list.length; i++) {
  588. if (i != index) {
  589. list2.push(list[i]);
  590. }
  591. }
  592. this.talkList = list2;
  593. },
  594. /**
  595. * @param {{
  596. files
  597. index,
  598. }} fileInfo
  599. files:文件集合
  600. index:当前编辑的下标
  601. */
  602. changeFilePaths2(fileInfo) {
  603. const {
  604. files,
  605. index
  606. } = fileInfo;
  607. for (let j = 0; j < this.talkList.length; j++) {
  608. this.talkList[index].filePath = files;
  609. }
  610. },
  611. changeTextarea(e, i) {
  612. for (let j = 0; j < this.talkList.length; j++) {
  613. this.talkList[i].talkResult = e.detail.value;
  614. }
  615. },
  616. changeTextarea2(e) {
  617. this.recordList[0].seeResult = e.target.value;
  618. },
  619. imgClick(i) {
  620. this.editIndex = i;
  621. },
  622. sureDetail(key) {
  623. console.log('commit check');
  624. return new Promise((resolve) => {
  625. const _commitCheck = () => {
  626. //console.log('checkedResponsibleList',this.checkedResponsibleList,'checkedResponsibleData',this.checkedResponsibleData);
  627. let resultIndex = this.resultConfigList.findIndex(item => item.name == this.data
  628. .checkResult);
  629. try {
  630. if (this.Index) {
  631. let params = !this.isZichaDucha ? {
  632. id: this.data.id,
  633. checkResult: this.data.checkResult,
  634. checkResultRequestList: [],
  635. checkItemScore: this.checkItemScore,
  636. value: this.checkItemValue,
  637. situationType: this.situationType,
  638. calScore: this.calScore,
  639. score: this.currentScore,
  640. deductPoint: this.deductPoint,
  641. } : {
  642. //自查督查保存
  643. id: this.data.id,
  644. responsibleUser: this.checkedResponsibleData.map(item => ({
  645. responsibleUserId: item.id,
  646. responsibleUserName: item.main
  647. })),
  648. checkResult: resultIndex != -1 ? this.resultConfigList[resultIndex]
  649. .code : '',
  650. checkResultRequestList: [],
  651. checkItemScore: this.checkItemScore,
  652. value: this.checkItemValue,
  653. situationType: this.systemSituationType,
  654. calScore: this.calScore,
  655. score: this.currentScore,
  656. deductPoint: this.deductPoint,
  657. };
  658. if (this.data.checkModelName == "访谈") {
  659. let list = [];
  660. for (let i = 0; i < this.talkList.length; i++) {
  661. let path = "";
  662. for (let j = 0; j < this.talkList[i].filePath.length; j++) {
  663. if (j == 0) {
  664. path += `${this.talkList[i].filePath[j]}`;
  665. } else {
  666. path += `,${this.talkList[i].filePath[j]}`;
  667. }
  668. }
  669. let item = {
  670. checkResultId: i,
  671. checkResultDescribe: this.talkList[i].talkResult,
  672. checkResultUrl: path,
  673. };
  674. list.push(item);
  675. }
  676. params.checkResultRequestList = list;
  677. } else {
  678. let item = {
  679. checkResultId: 1,
  680. checkResultDescribe: this.recordList[0].seeResult,
  681. checkResultUrl: this.filePath.join(','),
  682. };
  683. params.checkResultRequestList = [item];
  684. }
  685. const checkConfiglist = JSON.parse(JSON.stringify(this.checkConfiglist));
  686. this.$store.dispatch({
  687. type: "mainPointsDetail/commActions",
  688. payload: {
  689. key: this.isZichaDucha ? "saveZichaduchaCheckTaskDetail" :
  690. "saveCheckTaskDetail",
  691. data: {
  692. ...params,
  693. },
  694. },
  695. }).then((res) => {
  696. if (res) {
  697. resolve(true);
  698. // const resultIndex = this.resultConfigList.findIndex(item => item.name == this.data.checkResult);
  699. // console.log({resultIndex,'this.resultConfigList':this.resultConfigList});
  700. for (let i = 0; i < checkConfiglist.length; i++) {
  701. const index = this.resultConfigList.findIndex(item => item
  702. .code == params.checkResult);
  703. let name = '';
  704. if (index != -1) {
  705. name = this.resultConfigList[index].name
  706. }
  707. // if (
  708. // checkConfiglist[i].attr == (this.isZichaDucha ? name :
  709. // params.checkResult) &&
  710. // (checkConfiglist[i].resultType == 2 ||
  711. // checkConfiglist[i].resultType == 3)
  712. // )
  713. let configResultType=false;
  714. //if (this.isZichaDucha){
  715. if (this.resultConfigList[resultIndex].resultType==2||this.resultConfigList[resultIndex].resultType==3)
  716. configResultType=true;
  717. // }else{
  718. // if (checkConfiglist[i].resultType == 2 ||
  719. // checkConfiglist[i].resultType == 3)
  720. // configResultType=true;
  721. // }
  722. if (
  723. checkConfiglist[i].attr == (this.isZichaDucha ? this.resultConfigList[index].name:
  724. params.checkResult ) &&
  725. configResultType
  726. ) {
  727. //当主要缺失和次要缺失时发起改善任务
  728. console.log('开始提交改善前准备');
  729. let improveType = undefined;
  730. if (this.nowPermission == 6 || this.nowPermission ==
  731. 7) {
  732. improveType = 1
  733. }
  734. if (this.nowPermission == 4 || this.nowPermission ==
  735. 8) {
  736. improveType = 2
  737. }
  738. let param = this.isZichaDucha ? {
  739. situationId: this.data.situationId,
  740. situationName: this.data.situationName,
  741. checkGroupId: this.data.checkGroupId,
  742. checkGroupName: this.data.checkGroupName,
  743. checkItemId: this.data.checkItemId,
  744. checkItemName: this.data.checkItemName,
  745. checkPointId: this.data.checkPointId,
  746. checkPointName: this.data.checkPointName,
  747. deptName: this.data.checkGroupName,
  748. deptId: this.data.checkGroupId,
  749. appointFlag: false,
  750. desicion: 0,
  751. taskType: "1",
  752. checkId: this.data.functionId,
  753. checkResult: 0,
  754. // newResultType: Number(resultIndex != -1 ? this
  755. // .resultConfigList[resultIndex].code : 0
  756. // ),
  757. newResultType:checkConfiglist[i].resultType,
  758. receiveEmpId: this.data.receiveEmpId,
  759. receiveEmpName: this.data.receiveEmpName,
  760. checkDetailId: this.data.id,
  761. improveType: improveType, //0 普通 1督查 2自查 nowpermission 67 督查 48 自查
  762. } : {
  763. situationId: this.data.situationId,
  764. situationName: this.data.situationName,
  765. checkGroupId: this.data.checkGroupId,
  766. checkGroupName: this.data.checkGroupName,
  767. checkItemId: this.data.checkItemId,
  768. checkItemName: this.data.checkItemName,
  769. checkPointId: this.data.checkPointId,
  770. checkPointName: this.data.checkPointName,
  771. deptName: this.data.deptName,
  772. deptId: this.data.deptId,
  773. appointFlag: false,
  774. desicion: 0,
  775. taskType: "1",
  776. checkId: this.data.checkId,
  777. checkResult: 0,
  778. newResultType: checkConfiglist[i].resultType,
  779. // checkResult: this.resultConfigList[i].id,
  780. receiveEmpId: this.data.receiveEmpId,
  781. receiveEmpName: this.data.receiveEmpName,
  782. checkDetailId: this.data.id,
  783. };
  784. this.$store.dispatch({
  785. type: "mission/commActions",
  786. payload: {
  787. key: "comTaskCirculation",
  788. data: {
  789. ...param,
  790. },
  791. },
  792. });
  793. } else {
  794. console.log('改善条件为false');
  795. }
  796. }
  797. if (key == 'back') {
  798. //点完成时返回
  799. this.$store.commit('checkMainPoints/comChangeState', {
  800. 'key': 'ifUpdate',
  801. 'data': true
  802. });
  803. _goBackFresh('pages/checkMainPoints/checkMainPoints');
  804. }
  805. } else {
  806. console.log('res为false');
  807. resolve(false);
  808. }
  809. });
  810. } else {
  811. uni.showToast({
  812. title: '请先选择查核结果!',
  813. duration: 2000,
  814. icon: 'none'
  815. });
  816. resolve(false);
  817. }
  818. } catch (err) {
  819. resolve(err);
  820. }
  821. }
  822. if (this.data.checkResult == '无缺失' && this.deductPoint != 0) {
  823. //查核结果为‘无缺失’且扣分为非0
  824. uni.showModal({
  825. title: '提示',
  826. content: `当前选择无缺失结果,但扣分数为${this.deductPoint},确认继续提交么?`,
  827. success: function(res) {
  828. if (res.confirm) {
  829. _commitCheck();
  830. } else if (res.cancel) {
  831. console.log('用户点击取消操作');
  832. resolve(false);
  833. }
  834. }
  835. });
  836. } else {
  837. _commitCheck();
  838. }
  839. })
  840. },
  841. toTuLi() {
  842. uni.navigateTo({
  843. url: `/pages/legendDetails/legendDetails?checkItemId=${this.data.checkItemId}&checkPointId=${this.checkPointId}`,
  844. });
  845. },
  846. toHistory() {
  847. const situationId = this.data.situationId;
  848. this.$store.dispatch({
  849. type: 'mission/commActions',
  850. payload: {
  851. key: "getMissionList",
  852. data: {
  853. situationId
  854. }
  855. }
  856. }).then(data => {
  857. if (data) {
  858. if (data.improvingTaskResponses.length > 0) {
  859. uni.navigateTo({
  860. url: `/pages/improve-mission-list/improve-mission-list?situationId=${this.data.situationId}`,
  861. });
  862. } else {
  863. uni.showModal({
  864. content: '暂无改善历史',
  865. showCancel: false
  866. });
  867. }
  868. }
  869. });
  870. },
  871. clearForm(index) {
  872. //清除上一项的查核信息
  873. this.Index = '';
  874. // this.deductPoint = 0;
  875. this.currentScore = 0;
  876. this.inputScore = 0;
  877. if (this.data.checkModelName == '访谈') {
  878. if (index) {
  879. this.talkList[index].talkResult = '';
  880. } else {
  881. for (let i = 0; i < this.talkList.length; i++) {
  882. this.talkList[i].talkResult = '';
  883. }
  884. }
  885. } else {
  886. this.recordList[0].talkResult = '';
  887. }
  888. this.checkedSelectResultListIds = [];
  889. this.checkedSelectResultList = [];
  890. this.checkedSelectResultListData = [];
  891. this.filePath=[];
  892. },
  893. goToPrevPage() {
  894. _goBackFresh('pages/checkMainPoints/checkMainPoints');
  895. },
  896. switchItem: async function(num) {
  897. if (!this.data.checkResult) {
  898. uni.showToast({
  899. title: '请先选择查核结果!',
  900. duration: 2000,
  901. icon: 'none'
  902. });
  903. return;
  904. }
  905. const result = await this.sureDetail();
  906. if (result) {
  907. let current = this.itemBelongGroup.filter(item => {
  908. return item.id == this.id;
  909. });
  910. if (num < 0) {
  911. if (current[0].index == 0) {
  912. uni.showToast({
  913. title: '已经没有上一项',
  914. duration: 2000,
  915. icon: 'none'
  916. });
  917. return;
  918. }
  919. }
  920. if (num > 0) {
  921. if (current[0].index == this.itemBelongGroup.length - 1) {
  922. uni.showToast({
  923. title: '已经没有下一项',
  924. duration: 2000,
  925. icon: 'none'
  926. });
  927. return;
  928. }
  929. }
  930. let needItemIndex = num > 0 ? current[0].index + 1 : current[0].index - 1;
  931. let needItemId = this.itemBelongGroup[needItemIndex].id;
  932. let needItemCheckId = this.itemBelongGroup[needItemIndex].checkItemId;
  933. this.clearForm();
  934. this.clearResult();
  935. this.checkTaskDetail(needItemId);
  936. this.getCheckItemResultList(needItemCheckId); //获取缺陷项列表数据
  937. };
  938. },
  939. // 获取查核项可配置列表
  940. getCheckConfigList(checkItemId) {
  941. this.$store.dispatch({
  942. type: 'mainPointsDetail/commActions',
  943. payload: {
  944. key: 'getCheckItemAttr',
  945. data: checkItemId
  946. }
  947. }).then(data => {
  948. this.checkConfiglist = data
  949. })
  950. },
  951. // 获取查核项结果说明下拉列表
  952. getCheckItemResultList(checkItemId) {
  953. this.$store.dispatch({
  954. type: 'mainPointsDetail/commActions',
  955. payload: {
  956. key: 'getCheckItemResultList',
  957. data: checkItemId
  958. }
  959. }).then(data => {
  960. this.checkItemResultList = data;
  961. })
  962. },
  963. },
  964. onLoad({
  965. id,
  966. checkPointId,
  967. checkItemId,
  968. situationType,
  969. isZichaDucha,
  970. departmentId,
  971. checkGroupName,
  972. checkOrder,
  973. systemSituationType,
  974. }) {
  975. this.iOrder= checkOrder;
  976. this.id = id;
  977. this.checkPointId = checkPointId;
  978. this.situationType = situationType;
  979. this.checkItemId = checkItemId;
  980. this.departmentId = departmentId; //用于自查督查作为科室id
  981. this.getCheckConfigList(checkItemId);
  982. this.getCheckItemResultList(checkItemId);
  983. this.isZichaDucha = isZichaDucha? JSON.parse(isZichaDucha) : false; //是否为自查督查
  984. this.systemSituationType=systemSituationType;
  985. //console.log('2023062604 situationType',this.systemSituationType);
  986. //接收来自上个页面所传过来的数据
  987. const eventChannel = this.getOpenerEventChannel();
  988. eventChannel.on('acceptDataFromOpenerPage', (data) => {
  989. if (this.iOrder==1){
  990. this.itemBelongGroup = data.data[0].responseList.map((item, index) => {
  991. return ({
  992. index: index,
  993. id: item['id'],
  994. checkItemId: item['checkItemId']
  995. })
  996. });
  997. }else if (this.iOrder==2){
  998. var Tindex=0;
  999. let itemList=[];
  1000. data.data.filter(parentItem=>{
  1001. var tmp =parentItem.responseList.map((item) => {
  1002. return ({
  1003. index: Tindex++,
  1004. id: item['id'],
  1005. checkItemId: item['checkItemId']
  1006. })
  1007. });
  1008. itemList=itemList.concat(tmp);
  1009. });
  1010. this.itemBelongGroup=itemList;
  1011. }
  1012. //重新导航进页面,删除缓存并设置最新数据
  1013. uni.removeStorageSync('itemBelongGroup');
  1014. uni.setStorageSync('itemBelongGroup', this.itemBelongGroup);
  1015. });
  1016. //手动刷新页面,获取本地缓存
  1017. const itemBelongGroup = uni.getStorageSync('itemBelongGroup');
  1018. this.itemBelongGroup = itemBelongGroup;
  1019. },
  1020. };
  1021. </script>
  1022. <style lang="less">
  1023. .mainPointsDetailPage {
  1024. position: relative;
  1025. // min-height: 75rpx;
  1026. // overflow-y: auto;
  1027. height: 100%;
  1028. .checkItemResultModal {
  1029. display: flex;
  1030. height: 100%;
  1031. justify-content: center;
  1032. align-items: center;
  1033. .modalContent {
  1034. width: 90%;
  1035. height: 600rpx;
  1036. border-radius: 10rpx;
  1037. overflow: hidden;
  1038. background-color: #FFFFFF;
  1039. .modalBar {
  1040. display: flex;
  1041. justify-content: center;
  1042. align-items: center;
  1043. height: 80rpx;
  1044. color: #4E78FF;
  1045. font-size: 22.5rpx;
  1046. box-shadow: 0 6rpx 6rpx #E5E5E5;
  1047. border-bottom: 0.1rpx solid #E5E5E5;
  1048. }
  1049. .comfirmBtn {
  1050. font-size: 22rpx;
  1051. color: #FFFFFF;
  1052. height: 85rpx;
  1053. line-height: 85rpx;
  1054. text-align: center;
  1055. background-color: #3377FF;
  1056. }
  1057. .scroll {
  1058. height: calc(100% - 160rpx);
  1059. .list {
  1060. position: relative;
  1061. display: flex;
  1062. height: 80rpx;
  1063. justify-content: center;
  1064. align-items: center;
  1065. border-bottom: 0.1rpx solid #E5E5E5;
  1066. .checkIcon {
  1067. display: none;
  1068. position: absolute;
  1069. left: 5%;
  1070. width: 25rpx;
  1071. height: 25rpx;
  1072. }
  1073. &.on {
  1074. color: #3377FF;
  1075. .checkIcon {
  1076. display: block;
  1077. }
  1078. }
  1079. }
  1080. }
  1081. }
  1082. }
  1083. .scroll-y {
  1084. height: calc(100% - 75rpx);
  1085. }
  1086. .checkItem {
  1087. padding-top: 47.5rpx;
  1088. width: 100%;
  1089. min-height: 450rpx;
  1090. background-color: #fff;
  1091. position: relative;
  1092. .chBg {
  1093. position: absolute;
  1094. top: 0;
  1095. left: 0;
  1096. width: 125rpx;
  1097. height: 37.5rpx;
  1098. .img {
  1099. width: 125rpx;
  1100. height: 37.5rpx;
  1101. }
  1102. .title {
  1103. position: absolute;
  1104. top: 8.75rpx;
  1105. left: 25rpx;
  1106. font-size: 20rpx;
  1107. color: #fff;
  1108. font-weight: 500;
  1109. line-height: 20rpx;
  1110. }
  1111. }
  1112. .tlImg {
  1113. width: 40rpx;
  1114. height: 40rpx;
  1115. position: absolute;
  1116. right: 25rpx;
  1117. top: 25rpx;
  1118. }
  1119. .chContent {
  1120. width: 100%;
  1121. .checkItemName {
  1122. margin-left: 31.25rpx;
  1123. font-size: 25rpx;
  1124. line-height: 55rpx;
  1125. color: #292c33;
  1126. }
  1127. .checkPointName {
  1128. margin-left: 31.25rpx;
  1129. font-size: 17.5rpx;
  1130. line-height: 17.5rpx;
  1131. color: #7a8599;
  1132. }
  1133. .cont {
  1134. height: 135rpx;
  1135. .floatLeft {
  1136. float: left;
  1137. }
  1138. .borderLine {
  1139. margin-top: 56.25rpx;
  1140. width: 0.62rpx;
  1141. height: 25rpx;
  1142. background-color: #dadee6;
  1143. }
  1144. .other {
  1145. padding: 40rpx 0rpx;
  1146. height: 95rpx;
  1147. width: 187.18rpx;
  1148. text-align: center;
  1149. .letterTitle {
  1150. font-size: 17.5rpx;
  1151. color: #7a8599;
  1152. line-height: 17.5rpx;
  1153. }
  1154. .letterTitle2 {
  1155. height: 22.5rpx;
  1156. font-size: 22.5rpx;
  1157. line-height: 22.5rpx;
  1158. color: #292c33;
  1159. margin-bottom: 15rpx;
  1160. font-weight: 500;
  1161. overflow: hidden;
  1162. word-break: break-all;
  1163. /* break-all(允许在单词内换行。) */
  1164. text-overflow: ellipsis;
  1165. /* 超出部分省略号 */
  1166. display: -webkit-box;
  1167. /** 对象作为伸缩盒子模型显示 **/
  1168. -webkit-box-orient: vertical;
  1169. /** 设置或检索伸缩盒对象的子元素的排列方式 **/
  1170. -webkit-line-clamp: 1;
  1171. /** 显示的行数 **/
  1172. }
  1173. }
  1174. }
  1175. .checked {
  1176. margin-bottom: 40rpx;
  1177. padding: 0rpx 15.62rpx;
  1178. height: 75rpx;
  1179. .checked-checkItem {
  1180. margin: 0rpx 9.37rpx;
  1181. padding: 0;
  1182. width: 125rpx;
  1183. height: 75rpx;
  1184. background: #ebeff7;
  1185. float: left;
  1186. line-height: 75rpx;
  1187. text-align: center;
  1188. color: #292c33;
  1189. border-radius: 20rpx;
  1190. position: relative;
  1191. .img {
  1192. width: 51.25rpx;
  1193. height: 25rpx;
  1194. position: absolute;
  1195. right: -6.25rpx;
  1196. top: -6.25rpx;
  1197. }
  1198. .lastName {
  1199. color: #fff;
  1200. font-size: 13.75rpx;
  1201. line-height: 13.75rpx;
  1202. position: absolute;
  1203. right: 5rpx;
  1204. top: -1.87rpx;
  1205. }
  1206. }
  1207. }
  1208. .more {
  1209. margin: 0rpx 25rpx 0rpx 25rpx;
  1210. text-align: center;
  1211. border-top: 0.62rpx solid #dadee6;
  1212. text {
  1213. padding: 29.37rpx 0rpx 27.5rpx;
  1214. margin-right: 10rpx;
  1215. line-height: 22.5rpx;
  1216. font-size: 22.5rpx;
  1217. color: #3377ff;
  1218. display: inline-block;
  1219. vertical-align: top;
  1220. }
  1221. .moreImg {
  1222. margin-top: 28.75rpx;
  1223. width: 12.37rpx;
  1224. height: 21.21rpx;
  1225. display: inline-block;
  1226. }
  1227. .moreImg2 {
  1228. width: 12.37rpx;
  1229. height: 21.21rpx;
  1230. }
  1231. }
  1232. .multipleResponsible {
  1233. padding-top: 15rpx;
  1234. background-color: #F5F6FA;
  1235. .inner {
  1236. position: relative;
  1237. display: flex;
  1238. height: 87.5rpx;
  1239. z-index: 10;
  1240. flex-direction: row;
  1241. justify-content: flex-start;
  1242. align-items: center;
  1243. padding: 0 25rpx;
  1244. background-color: #FFFFFF;
  1245. .label {
  1246. display: inline-block;
  1247. font-size: 22.5rpx;
  1248. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1249. font-weight: 400;
  1250. color: #525866;
  1251. margin-right: 105rpx;
  1252. }
  1253. .value {
  1254. flex: 0.9;
  1255. font-size: 22.5rpx;
  1256. overflow: hidden; //超出的文本隐藏
  1257. text-overflow: ellipsis; //溢出用省略号显示
  1258. white-space: nowrap; //溢出不换行
  1259. }
  1260. .valuePlaceholder {
  1261. font-size: 22.5rpx;
  1262. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1263. font-weight: 400;
  1264. color: #B8BECC;
  1265. }
  1266. .arrow {
  1267. position: absolute;
  1268. right: 25rpx;
  1269. width: 12.5rpx;
  1270. height: 20rpx;
  1271. }
  1272. }
  1273. }
  1274. .score {
  1275. display: flex;
  1276. height: 87.5rpx;
  1277. flex-direction: row;
  1278. justify-content: space-between;
  1279. align-items: center;
  1280. padding: 0 25rpx;
  1281. background: #F5F6FA;
  1282. .box {
  1283. text-align: center;
  1284. vertical-align: bottom;
  1285. .lable {
  1286. display: inline-block;
  1287. font-size: 22.5rpx;
  1288. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1289. font-weight: 400;
  1290. color: #525866;
  1291. margin-right: 10rpx;
  1292. }
  1293. .totalScore {
  1294. font-size: 30rpx;
  1295. font-family: SourceHanSansCN-Bold, SourceHanSansCN;
  1296. font-weight: bold;
  1297. color: #292C33;
  1298. }
  1299. .currentScore {
  1300. font-size: 30rpx;
  1301. font-family: SourceHanSansCN-Bold, SourceHanSansCN;
  1302. font-weight: bold;
  1303. color: #3377FF;
  1304. }
  1305. }
  1306. }
  1307. .textValue {
  1308. display: flex;
  1309. flex-direction: row;
  1310. justify-content: flex-start;
  1311. align-items: center;
  1312. width: 70%;
  1313. height: 100%;
  1314. }
  1315. .inputScore {
  1316. display: flex;
  1317. flex-direction: row;
  1318. justify-content: flex-start;
  1319. align-items: center;
  1320. height: 87.5rpx;
  1321. padding: 0 25rpx;
  1322. background-color: #FFFFFF;
  1323. .label {
  1324. display: inline-block;
  1325. font-size: 22.5rpx;
  1326. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1327. font-weight: 400;
  1328. color: #525866;
  1329. margin-right: 81.25rpx;
  1330. }
  1331. .value {
  1332. font-size: 22.5rpx;
  1333. }
  1334. .placeholder {
  1335. font-size: 22.5rpx;
  1336. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1337. font-weight: 400;
  1338. color: #525866;
  1339. }
  1340. }
  1341. }
  1342. }
  1343. .see {
  1344. margin-top: 15rpx;
  1345. height: 287.5rpx;
  1346. background-color: #fff;
  1347. // padding-left: 25rpx;
  1348. .seeResult {
  1349. position: relative;
  1350. margin-left: 25rpx;
  1351. padding-top: 32.5rpx;
  1352. // height: 200rpx;
  1353. border-bottom: 1px solid #dadee6;
  1354. .clear {
  1355. position: absolute;
  1356. z-index: 10;
  1357. right: 25rpx;
  1358. bottom: 25rpx;
  1359. font-size: 22.5rpx;
  1360. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1361. font-weight: 400;
  1362. color: #FF3355;
  1363. }
  1364. .seeResultFloorOne {
  1365. display: flex;
  1366. flex-direction: row;
  1367. justify-content: space-between;
  1368. align-items: center;
  1369. margin-bottom: 25rpx;
  1370. padding-right: 25rpx;
  1371. .plusAction {
  1372. display: flex;
  1373. flex-direction: row;
  1374. justify-content: center;
  1375. align-items: center;
  1376. .plusIcon {
  1377. width: 25rpx;
  1378. height: 25rpx;
  1379. margin-right: 10rpx;
  1380. }
  1381. .threePoint {
  1382. font-size: 22.5rpx;
  1383. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1384. font-weight: 400;
  1385. color: #7A8599;
  1386. }
  1387. }
  1388. }
  1389. .seeName {
  1390. width: 175rpx;
  1391. font-size: 22.5rpx;
  1392. color: #525866;
  1393. line-height: 22.5rpx;
  1394. display: inline-block;
  1395. }
  1396. .seeTextarea {
  1397. width: 97%;
  1398. height: 155rpx;
  1399. display: inline-block;
  1400. font-size: 22.5rpx;
  1401. line-height: 27.5rpx;
  1402. }
  1403. }
  1404. .seeImg {
  1405. min-height: 87.5rpx;
  1406. .seeName2 {
  1407. width: 175rpx;
  1408. font-size: 22.5rpx;
  1409. color: #525866;
  1410. line-height: 87.5rpx;
  1411. display: inline-block;
  1412. }
  1413. }
  1414. }
  1415. .talk {
  1416. .talkTitle {
  1417. padding: 25rpx 25rpx 15rpx;
  1418. font-size: 22.5rpx;
  1419. line-height: 22.5rpx;
  1420. color: #666f80;
  1421. .del {
  1422. float: right;
  1423. color: #3377ff;
  1424. }
  1425. }
  1426. .talkResult {
  1427. position: relative;
  1428. padding-left: 25rpx;
  1429. padding-top: 32.5rpx;
  1430. border-bottom: 1px solid #dadee6;
  1431. background-color: #fff;
  1432. .clear {
  1433. position: absolute;
  1434. z-index: 10;
  1435. right: 25rpx;
  1436. bottom: 25rpx;
  1437. font-size: 22.5rpx;
  1438. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1439. font-weight: 400;
  1440. color: #FF3355;
  1441. }
  1442. .seeResultFloorOne {
  1443. display: flex;
  1444. flex-direction: row;
  1445. justify-content: space-between;
  1446. align-items: center;
  1447. margin-bottom: 25rpx;
  1448. padding-right: 25rpx;
  1449. .plusAction {
  1450. display: flex;
  1451. flex-direction: row;
  1452. justify-content: center;
  1453. align-items: center;
  1454. .plusIcon {
  1455. width: 25rpx;
  1456. height: 25rpx;
  1457. margin-right: 10rpx;
  1458. }
  1459. .threePoint {
  1460. font-size: 22.5rpx;
  1461. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1462. font-weight: 400;
  1463. color: #7A8599;
  1464. }
  1465. }
  1466. }
  1467. .seeName {
  1468. width: 175rpx;
  1469. font-size: 22.5rpx;
  1470. color: #525866;
  1471. line-height: 22.5rpx;
  1472. display: inline-block;
  1473. }
  1474. .seeTextarea {
  1475. width: 531.25rpx;
  1476. height: 155rpx;
  1477. display: inline-block;
  1478. font-size: 22.5rpx;
  1479. line-height: 27.5rpx;
  1480. }
  1481. }
  1482. .talkImg {
  1483. min-height: 87.5rpx;
  1484. .seeName2 {
  1485. width: 175rpx;
  1486. font-size: 22.5rpx;
  1487. color: #525866;
  1488. line-height: 87.5rpx;
  1489. display: inline-block;
  1490. }
  1491. }
  1492. }
  1493. .insert {
  1494. background-color: #fff;
  1495. font-size: 22.5rpx;
  1496. line-height: 22.5rpx;
  1497. color: #3377ff;
  1498. padding: 26.25rpx;
  1499. }
  1500. .sureDetail {
  1501. width: 100%;
  1502. height: 75rpx;
  1503. font-size: 22.5rpx;
  1504. background-color: #3377ff;
  1505. line-height: 75rpx;
  1506. position: absolute;
  1507. bottom: 0rpx;
  1508. }
  1509. .bottomMenuGroup {
  1510. position: fixed;
  1511. bottom: 0;
  1512. width: 100%;
  1513. height: 75rpx;
  1514. display: flex;
  1515. flex-direction: row;
  1516. background: #FFFFFF;
  1517. border-top: 0.62rpx solid #DADEE6;
  1518. .menuBtn {
  1519. display: flex;
  1520. width: 75rpx;
  1521. height: 75rpx;
  1522. justify-content: center;
  1523. align-items: center;
  1524. border-right: 0.62rpx solid #DADEE6;
  1525. .threeLineMenuIcon {
  1526. width: 26.25rpx;
  1527. height: 21.25rpx;
  1528. }
  1529. }
  1530. .prevBtn,
  1531. .nextBtn {
  1532. display: flex;
  1533. flex: 1;
  1534. justify-content: center;
  1535. height: 75rpx;
  1536. line-height: 75rpx;
  1537. font-size: 22.5rpx;
  1538. font-family: SourceHanSansCN-Normal, SourceHanSansCN;
  1539. font-weight: 400;
  1540. color: #3377FF;
  1541. }
  1542. .prevBtn {
  1543. border-right: 0.62rpx solid #DADEE6;
  1544. }
  1545. .nextBtn {
  1546. color: #FFFFFF;
  1547. background: #3377FF;
  1548. }
  1549. }
  1550. }
  1551. </style>