risk-assessment-form.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697
  1. <template>
  2. <div>
  3. <sd-webflow
  4. ref="flow"
  5. :removed-tabs="['sdRelatedDoc']"
  6. @actionBtnClick="actionBtnClick"
  7. @saveproject="saveproject"
  8. @afterDispatch="afterDispatch"
  9. >
  10. <template v-slot:form="{ model, fields, FlowData }">
  11. <table>
  12. <tr>
  13. <td style="border: none">
  14. <audit-advanced-group
  15. :expand="Expand"
  16. :expand-str="'Expand'"
  17. :group-label="'基本信息'"
  18. tablestyle="''"
  19. @changedClick="changedClick"
  20. ></audit-advanced-group>
  21. </td>
  22. </tr>
  23. </table>
  24. <table v-show="Expand">
  25. <tr v-show="initData(model, fields)">
  26. <!-- ID -->
  27. <sd-form-item-td name="id" />
  28. <!-- 随机ID -->
  29. <sd-form-item-td name="riskDutiesId" />
  30. </tr>
  31. <tr>
  32. <!-- 风险分类 -->
  33. <sd-form-item-td name="riskCategoryPath">
  34. {{ model.riskCategoryPath }}
  35. </sd-form-item-td>
  36. <!-- 风险事项编号 -->
  37. <sd-form-item-td name="eventCode">
  38. {{ model.eventCode }}
  39. </sd-form-item-td>
  40. </tr>
  41. <tr>
  42. <!-- 风险事项名称 -->
  43. <sd-form-item-td name="eventName">
  44. {{ model.eventName }}
  45. </sd-form-item-td>
  46. <!-- 测试结果 -->
  47. <!-- <sd-form-item-td name="testResult" /> -->
  48. </tr>
  49. <tr>
  50. <!-- 风险事项描述 -->
  51. <sd-form-item-td name="eventDesc" :colspan="3">
  52. <a-textarea v-model="model.eventDesc" :rows="3" />
  53. </sd-form-item-td>
  54. </tr>
  55. <tr>
  56. <!-- 发生可能性 -->
  57. <td class="ant-form-item-label ant-form-item-label">
  58. <div style="float:right">
  59. <a-tooltip>
  60. <template v-slot:title>
  61. <span style="white-space:pre-wrap;"
  62. ><p class="text">{{ fxknprops }}</p></span
  63. ></template
  64. >
  65. <a-icon type="info-circle" /> </a-tooltip
  66. ></div>
  67. <label
  68. title="发生可能性(P)"
  69. :class="
  70. FlowData.mode === 'EDIT' && !fields.responseCompletionState.readonly
  71. ? 'ant-form-item-required'
  72. : ''
  73. "
  74. >
  75. 发生可能性(P)
  76. </label>
  77. </td>
  78. <sd-form-item-td name="occurPossibility" :label="null">
  79. <template v-slot:read-and-edit="{ editable }">
  80. <span v-if="!editable">{{
  81. model.occurPossibility &&
  82. JSON.parse(model.occurPossibility) &&
  83. typeof JSON.parse(model.occurPossibility) === 'object'
  84. ? JSON.parse(model.occurPossibility)[0].name
  85. : model.occurPossibility
  86. }}</span>
  87. <sd-select
  88. v-else
  89. v-model="model.occurPossibility"
  90. :options="occurPossibility"
  91. style="width:95%"
  92. @change="changefz"
  93. />
  94. </template>
  95. </sd-form-item-td>
  96. <!-- 风险影响程度 -->
  97. <td class="ant-form-item-label ant-form-item-label">
  98. <div style="float:right">
  99. <a-tooltip slot="suffix">
  100. <template v-slot:title>
  101. <span style="white-space:pre-wrap;"
  102. ><p class="text">{{ fxyxprops }}</p></span
  103. ></template
  104. >
  105. <a-icon type="info-circle" /> </a-tooltip
  106. ></div>
  107. <label
  108. title="风险影响程度(C)"
  109. :class="
  110. FlowData.mode === 'EDIT' && !fields.responseCompletionState.readonly
  111. ? 'ant-form-item-required'
  112. : ''
  113. "
  114. >
  115. 风险影响程度(C)
  116. </label>
  117. </td>
  118. <sd-form-item-td name="riskImpactDegree" :label="null">
  119. <template v-slot:read-and-edit="{ editable }">
  120. <span v-if="!editable">{{
  121. model.riskImpactDegree &&
  122. JSON.parse(model.riskImpactDegree) &&
  123. typeof JSON.parse(model.riskImpactDegree) === 'object'
  124. ? JSON.parse(model.riskImpactDegree)[0].name
  125. : model.riskImpactDegree
  126. }}</span>
  127. <sd-select
  128. v-else
  129. v-model="model.riskImpactDegree"
  130. :options="riskImpactDegree"
  131. @change="changefz"
  132. />
  133. </template>
  134. </sd-form-item-td>
  135. </tr>
  136. <tr>
  137. <!-- 固有风险分值 -->
  138. <sd-form-item-td name="inherentRiskScore">{{
  139. model.inherentRiskScore
  140. }}</sd-form-item-td>
  141. <!-- 控制水平 -->
  142. <sd-form-item-td name="controlLevel" @change="changefz" />
  143. </tr>
  144. <tr>
  145. <!-- 控制水平系数 -->
  146. <sd-form-item-td name="controlLevelCoefficient">{{
  147. model.controlLevelCoefficient
  148. }}</sd-form-item-td>
  149. <!-- 剩余风险分值 -->
  150. <sd-form-item-td name="residualRiskScore">{{
  151. model.residualRiskScore
  152. }}</sd-form-item-td>
  153. </tr>
  154. <tr>
  155. <!-- 风险等级 -->
  156. <sd-form-item-td name="riskLevel">{{ model.riskLevel }}</sd-form-item-td>
  157. <!-- 未来风险趋势 -->
  158. <sd-form-item-td name="riskTrend" />
  159. </tr>
  160. <tr v-show="false"><sd-form-item-td name="riskDimension"/></tr>
  161. <tr v-show="false"
  162. ><sd-form-item-td name="occurPossibilityNum"/><sd-form-item-td
  163. name="riskImpactDegreeNum"
  164. /></tr>
  165. <tr>
  166. <!-- 是否应对 -->
  167. <sd-form-item-td
  168. name="isAnswer"
  169. :input-props="{ defaultValue: 'no' }"
  170. @change="changesfyd"
  171. />
  172. <!-- 评估人员 -->
  173. <sd-form-item-td name="testUserName" :label="'评估人员'">
  174. {{ model.testUserName }}
  175. </sd-form-item-td>
  176. </tr>
  177. <tr>
  178. <!-- 评估日期 -->
  179. <sd-form-item-td
  180. name="evaluationTime"
  181. :colspan="3"
  182. :input-props="{ defaultValue: evaluationTime }"
  183. />
  184. </tr>
  185. <tr>
  186. <!-- 备注 -->
  187. <sd-form-item-td name="remark" :colspan="3">
  188. <a-textarea v-model="model.remark" :rows="3" />
  189. </sd-form-item-td>
  190. </tr>
  191. </table>
  192. <table v-if="model.isAnswer === 'yes'">
  193. <tr>
  194. <td style="border: none">
  195. <audit-advanced-group
  196. :expand="YdExpand"
  197. :expand-str="'YdExpand'"
  198. :group-label="'应对信息'"
  199. tablestyle="''"
  200. @changedClick="changedClick"
  201. ></audit-advanced-group>
  202. </td>
  203. </tr>
  204. <tr v-if="YdExpand"
  205. ><td style="border: none">
  206. <table
  207. v-if="FlowData.mode === 'EDIT' && !fields.responseCompletionState.readonly"
  208. style="width:100%"
  209. >
  210. <tr>
  211. <td class="ant-form-item-label ant-form-item-label">
  212. <label title="风险应对策略" class="ant-form-item-required">
  213. 风险应对策略
  214. </label>
  215. </td>
  216. <!-- 风险应对策略 -->
  217. <sd-form-item-td name="riskResponseStrategy" :label="null">
  218. <a-form-model-item
  219. :rules="[
  220. {
  221. required: true,
  222. trigger: ['change', 'blur'],
  223. },
  224. ]"
  225. prop="riskResponseStrategy"
  226. >
  227. <a-input v-model="model.riskResponseStrategy"></a-input>
  228. </a-form-model-item>
  229. </sd-form-item-td>
  230. <!-- 责任部门 -->
  231. <td class="ant-form-item-label ant-form-item-label">
  232. <label title="责任部门" class="ant-form-item-required"> 责任部门 </label>
  233. </td>
  234. <sd-form-item-td name="responsibleDeptName" :label="null">
  235. <a-form-model-item
  236. :rules="[
  237. {
  238. required: true,
  239. trigger: ['change', 'blur'],
  240. },
  241. ]"
  242. prop="responsibleDeptName"
  243. >
  244. <a-input v-model="model.responsibleDeptName"></a-input>
  245. </a-form-model-item>
  246. </sd-form-item-td>
  247. </tr>
  248. <tr>
  249. <!-- 应对措施 -->
  250. <td class="ant-form-item-label ant-form-item-label">
  251. <label title="应对措施" class="ant-form-item-required"> 应对措施 </label>
  252. </td>
  253. <sd-form-item-td name="riskResponseMeasures" :label="null" :colspan="3">
  254. <a-form-model-item
  255. :rules="[
  256. {
  257. required: true,
  258. trigger: ['change', 'blur'],
  259. },
  260. ]"
  261. prop="riskResponseMeasures"
  262. >
  263. <a-textarea v-model="model.riskResponseMeasures" :rows="3" />
  264. </a-form-model-item>
  265. </sd-form-item-td>
  266. </tr>
  267. <tr>
  268. <td class="ant-form-item-label ant-form-item-label">
  269. <label title="应对完成情况描述" class="ant-form-item-required">
  270. 应对完成情况描述
  271. </label>
  272. </td>
  273. <!-- 应对完成情况描述 -->
  274. <sd-form-item-td name="responseCompletionDesc" :label="null" :colspan="3">
  275. <a-form-model-item
  276. :rules="[
  277. {
  278. required: true,
  279. trigger: ['change', 'blur'],
  280. },
  281. ]"
  282. prop="responseCompletionDesc"
  283. >
  284. <a-textarea v-model="model.responseCompletionDesc" :rows="3" />
  285. </a-form-model-item>
  286. </sd-form-item-td>
  287. </tr>
  288. <tr>
  289. <!-- 应对完成状态 -->
  290. <td class="ant-form-item-label ant-form-item-label">
  291. <label title="应对完成状态" class="ant-form-item-required">
  292. 应对完成状态
  293. </label>
  294. </td>
  295. <sd-form-item-td name="responseCompletionState" :label="null">
  296. <a-form-model-item
  297. :rules="[
  298. {
  299. required: true,
  300. trigger: ['change', 'blur'],
  301. },
  302. ]"
  303. prop="responseCompletionState"
  304. >
  305. <sd-select
  306. v-model="model.responseCompletionState"
  307. :options="responseCompletionStateoptions"
  308. ></sd-select>
  309. </a-form-model-item>
  310. </sd-form-item-td>
  311. <!-- 应对人员 -->
  312. <sd-form-item-td name="responsePersonOpt">
  313. <sd-user-picker v-model="model.responsePersonOpt" @change="changeuser" />
  314. </sd-form-item-td>
  315. </tr>
  316. <tr>
  317. <!-- 人员所属单位 -->
  318. <td class="ant-form-item-label ant-form-item-label">
  319. <label title="人员所属单位" class="ant-form-item-required">
  320. 人员所属单位
  321. </label>
  322. </td>
  323. <sd-form-item-td name="responsibleDeptOpt" :label="null">
  324. <a-form-model-item
  325. :rules="[
  326. {
  327. required: true,
  328. trigger: ['change', 'blur'],
  329. },
  330. ]"
  331. prop="responsibleDeptOpt"
  332. >
  333. <sd-group-picker
  334. v-model="model.responsibleDeptOpt"
  335. @change="changedept"
  336. ></sd-group-picker>
  337. </a-form-model-item>
  338. </sd-form-item-td>
  339. <!-- 应对日期 -->
  340. <td class="ant-form-item-label ant-form-item-label">
  341. <label title="应对日期" class="ant-form-item-required"> 应对日期 </label>
  342. </td>
  343. <sd-form-item-td name="responseTime" :label="null">
  344. <a-form-model-item
  345. :rules="[
  346. {
  347. required: true,
  348. trigger: ['change', 'blur'],
  349. },
  350. ]"
  351. prop="responseTime"
  352. ><a-date-picker v-model="model.responseTime" />
  353. </a-form-model-item>
  354. </sd-form-item-td>
  355. </tr>
  356. <tr v-show="false">
  357. <sd-form-item-td name="responsePersonName"/>
  358. <sd-form-item-td name="responsibleDeptName"
  359. /></tr>
  360. <tr>
  361. <!-- 附件 -->
  362. <sd-form-item-td name="attachment" :colspan="3" />
  363. </tr>
  364. </table>
  365. <table v-else style="width:100%">
  366. <tr>
  367. <!-- 风险应对策略 -->
  368. <sd-form-item-td name="riskResponseStrategy"
  369. ><template v-slot:read-and-edit>
  370. {{ model.riskResponseStrategy }}</template
  371. ></sd-form-item-td
  372. >
  373. <!-- 责任部门 -->
  374. <sd-form-item-td name="responsibleDeptName" :label="'责任部门'">{{
  375. model.responsibleDeptName
  376. }}</sd-form-item-td>
  377. </tr>
  378. <tr>
  379. <!-- 应对措施 -->
  380. <sd-form-item-td name="riskResponseMeasures" :colspan="3">
  381. {{ model.riskResponseMeasures }}
  382. </sd-form-item-td>
  383. </tr>
  384. <tr>
  385. <!-- 应对完成情况描述 -->
  386. <sd-form-item-td name="responseCompletionDesc" :colspan="3">
  387. {{ model.responseCompletionDesc }}
  388. </sd-form-item-td>
  389. </tr>
  390. <tr>
  391. <!-- 应对完成状态 -->
  392. <sd-form-item-td name="responseCompletionState">
  393. <template v-slot:read-and-edit="{ editable }">{{
  394. model.responseCompletionState && JSON.parse(model.responseCompletionState)
  395. ? JSON.parse(model.responseCompletionState)[0].name
  396. : model.responseCompletionState
  397. }}</template></sd-form-item-td
  398. >
  399. <!-- 应对人员 -->
  400. <sd-form-item-td name="responsePersonOpt">{{
  401. model.responsePersonName
  402. }}</sd-form-item-td>
  403. </tr>
  404. <tr>
  405. <!-- 人员所属单位 -->
  406. <sd-form-item-td name="responsibleDeptOpt">{{
  407. model.responsePersonDeptName
  408. }}</sd-form-item-td>
  409. <!-- 应对日期 -->
  410. <sd-form-item-td name="responseTime">{{ model.responseTime }}</sd-form-item-td>
  411. </tr>
  412. <tr>
  413. <!-- 附件 -->
  414. <sd-form-item-td name="attachment" :colspan="3">
  415. <template v-slot:read-and-edit>
  416. <sd-attachment
  417. v-model="model.attachment"
  418. :group-id="JSON.parse(fields.attachment.value).value"
  419. :read-only="true"
  420. />
  421. </template>
  422. </sd-form-item-td>
  423. </tr>
  424. </table> </td></tr
  425. ></table>
  426. </template>
  427. </sd-webflow>
  428. </div>
  429. </template>
  430. <script>
  431. import moment from 'moment'
  432. import { Modal, message } from 'ant-design-vue'
  433. import riskTasksService from '../risk-tasks-service'
  434. import auditAdvancedGroup from '../../../components/audit-advanced-group.vue'
  435. import auditAdvancedGroupMixins from '../../../components/audit-advanced-group-mixins'
  436. import components from './_import-components/risk-assessment-form-import'
  437. export default {
  438. name: 'RiskAssessmentForm',
  439. metaInfo: {
  440. title: '风险评估',
  441. },
  442. components: {
  443. ...components,
  444. auditAdvancedGroup,
  445. },
  446. mixins: [auditAdvancedGroupMixins],
  447. data() {
  448. return {
  449. Expand: true,
  450. YdExpand: true,
  451. columns: [
  452. {
  453. title: '序号',
  454. dataIndex: 'sortNum',
  455. width: '50px',
  456. customRender: (text, record, index) => `${index + 1}`,
  457. },
  458. { dataIndex: 'sourceId', sdHidden: true },
  459. {
  460. dataIndex: 'stepName',
  461. title: '步骤名称',
  462. width: '30%',
  463. },
  464. { dataIndex: 'stepReason', title: '步骤说明', width: '30%' },
  465. {
  466. title: '附件',
  467. dataIndex: 'attachment',
  468. },
  469. ],
  470. infocolumns: [
  471. {
  472. title: '序号',
  473. dataIndex: 'sortNum',
  474. width: '50px',
  475. customRender: (text, record, index) => `${index + 1}`,
  476. },
  477. { dataIndex: 'sourceId', sdHidden: true },
  478. {
  479. dataIndex: 'sampleName',
  480. title: '样本名称',
  481. width: '30%',
  482. },
  483. { dataIndex: 'sampleDesc', title: '样本描述', width: '30%' },
  484. {
  485. title: '附件',
  486. dataIndex: 'attachment',
  487. },
  488. ],
  489. orgId: null,
  490. versionId: null,
  491. flag: true,
  492. occurPossibility: [],
  493. riskImpactDegree: [],
  494. riskLevel: [],
  495. taskId: '',
  496. fxknprops: '',
  497. fxyxprops: '',
  498. responseCompletionStateoptions: [],
  499. }
  500. },
  501. computed: {
  502. evaluationTime() {
  503. return moment(new Date())
  504. },
  505. },
  506. // created(){
  507. // },
  508. methods: {
  509. sdFormReady() {
  510. this.mode = this.$refs.flow.formData.mode
  511. },
  512. initData(model, fields) {
  513. if (this.flag) {
  514. this.flag = false
  515. const taskId = model.riskDutiesId
  516. if (taskId) {
  517. this.taskId = taskId
  518. }
  519. this.occurPossibility = []
  520. this.riskImpactDegree = []
  521. riskTasksService.getRiskTaskInfo(taskId).then((res) => {
  522. const riskCriteriaId = res.data.pageFormData.pageFieldInfos.findIndex(
  523. (i) => i.name === 'riskCriteriaId'
  524. )
  525. riskTasksService
  526. .getRiskCriteriaInfo(res.data.pageFormData.pageFieldInfos[riskCriteriaId].value)
  527. .then((res) => {
  528. const fskn = res.data.pageFormData.pageFieldInfos.findIndex(
  529. (i) => i.name === 'riskPossibilityEntitys'
  530. )
  531. const fxyx = res.data.pageFormData.pageFieldInfos.findIndex(
  532. (i) => i.name === 'riskDegreeEntitys'
  533. )
  534. const fxdj = res.data.pageFormData.pageFieldInfos.findIndex(
  535. (i) => i.name === 'riskLevelEntitys'
  536. )
  537. let value = res.data.pageFormData.pageFieldInfos[fskn].value
  538. if (value && value !== '[]') {
  539. const valueobj = JSON.parse(value)
  540. valueobj.forEach((f, index) => {
  541. const obj = {
  542. id: index + 1,
  543. name: f.definition,
  544. }
  545. this.fxknprops += obj.name + ' :' + obj.id.toString() + '\n\r'
  546. this.occurPossibility.push(obj)
  547. })
  548. if (this.fxknprops !== '') {
  549. this.fxknprops = this.fxknprops.substring(0, this.fxknprops.length - 2)
  550. }
  551. }
  552. value = res.data.pageFormData.pageFieldInfos[fxyx].value
  553. if (value && value !== '[]') {
  554. const valueobj = JSON.parse(value)
  555. for (var i = 1; i < 6; i++) {
  556. if (valueobj[0]['score' + i] !== '') {
  557. const obj = {
  558. id: i,
  559. name: valueobj[0]['score' + i],
  560. }
  561. this.fxyxprops += obj.name + ' :' + obj.id.toString() + '\r\n'
  562. this.riskImpactDegree.push(obj)
  563. }
  564. }
  565. if (this.fxyxprops !== '') {
  566. this.fxyxprops = this.fxyxprops.substring(0, this.fxyxprops.length - 2)
  567. }
  568. }
  569. value = res.data.pageFormData.pageFieldInfos[fxdj].value
  570. if (value && value !== '[]') {
  571. const valueobj = JSON.parse(value)
  572. valueobj.forEach((f, index) => {
  573. const obj = {
  574. dj: f.riskLevel,
  575. min: f.maxNum,
  576. max: f.minNum,
  577. }
  578. this.riskLevel.push(obj)
  579. })
  580. }
  581. })
  582. })
  583. this.responseCompletionStateoptions = []
  584. fields.responseCompletionState.attr.selectListItem.forEach((i) => {
  585. this.responseCompletionStateoptions.push({
  586. id: i.value,
  587. name: i.label,
  588. })
  589. })
  590. }
  591. return false
  592. },
  593. changedept(value) {
  594. let deptname = ''
  595. if (value) {
  596. value.forEach((d) => {
  597. deptname += ',' + d.name
  598. })
  599. if (deptname !== '') deptname = deptname.substring(1, deptname.length)
  600. this.$refs.flow.setFieldValue('responsePersonDeptName', deptname)
  601. }
  602. },
  603. changeuser(value) {
  604. let name = ''
  605. if (value) {
  606. value.forEach((d) => {
  607. name += ',' + d.name
  608. })
  609. if (name !== '') name = name.substring(1, name.length)
  610. this.$refs.flow.setFieldValue('responsePersonName', name)
  611. }
  612. },
  613. changefz() {
  614. // 发生可能
  615. const fskn = this.$refs.flow.getFieldValue('occurPossibility')
  616. // 风险影响
  617. const fxyx = this.$refs.flow.getFieldValue('riskImpactDegree')
  618. let gyfx = 0
  619. let fxdj = ''
  620. if (fskn && fxyx && fskn.length > 0 && fxyx.length > 0) {
  621. gyfx = fskn[0].id * fxyx[0].id
  622. fxdj = gyfx
  623. this.$refs.flow.setFieldValue('occurPossibilityNum', fskn[0].id.toString())
  624. this.$refs.flow.setFieldValue('riskImpactDegreeNum', fxyx[0].id.toString())
  625. const fxdjobj = this.riskLevel.find(
  626. (i) => fxdj >= parseFloat(i.max) && fxdj <= parseFloat(i.min)
  627. )
  628. if (fxdjobj) {
  629. this.$refs.flow.setFieldValue('riskDimension', fxdjobj.dj)
  630. } else {
  631. this.$refs.flow.setFieldValue('riskDimension', '')
  632. }
  633. }
  634. this.$refs.flow.setFieldValue('inherentRiskScore', (Math.round(gyfx * 100) / 100).toString())
  635. const kzsp = this.$refs.flow.getFieldValue('controlLevel')
  636. if (kzsp) {
  637. this.$refs.flow.setFieldValue(
  638. 'controlLevelCoefficient',
  639. (Math.round(kzsp * 100) / 100).toString()
  640. )
  641. const syfx = parseFloat(kzsp) * gyfx
  642. fxdj = syfx
  643. this.$refs.flow.setFieldValue(
  644. 'residualRiskScore',
  645. (Math.round(syfx * 100) / 100).toString()
  646. )
  647. }
  648. // const obj = this.riskLevel.find((i) => fxdj >= i.min && fxdj <= i.max)
  649. const obj = this.riskLevel.find((i) => fxdj >= parseFloat(i.max) && fxdj <= parseFloat(i.min))
  650. if (obj) {
  651. this.$refs.flow.setFieldValue('riskLevel', obj.dj)
  652. } else {
  653. this.$refs.flow.setFieldValue('riskLevel', '')
  654. }
  655. },
  656. changesfyd() {
  657. const sfyd = this.$refs.flow.getFieldValue('isAnswer')
  658. if (sfyd === 'no') {
  659. // 应对信息 清空
  660. this.$refs.flow.setFieldValue('riskResponseStrategy', '')
  661. this.$refs.flow.setFieldValue('riskResponseMeasures', '')
  662. this.$refs.flow.setFieldValue('responsibleDeptName', '')
  663. this.$refs.flow.setFieldValue('responsePersonName', '')
  664. this.$refs.flow.setFieldValue('responseCompletionState', null)
  665. this.$refs.flow.setFieldValue('responseTime', '')
  666. this.$refs.flow.setFieldValue('responseCompletionDesc', '')
  667. this.$refs.flow.setFieldValue('responsePersonDeptName', '')
  668. }
  669. },
  670. actionBtnClick(evt, { button, FlowData }) {
  671. if (button.fakeId === 'save') {
  672. }
  673. },
  674. // 保存操作,记录标识位
  675. saveproject() {
  676. this.isSave = true
  677. },
  678. /**
  679. * 提交后事件
  680. */
  681. afterDispatch() {
  682. // 提交也认为是保存
  683. this.isSave = true
  684. },
  685. },
  686. }
  687. </script>
  688. <style module lang="scss">
  689. @use '@/common/design' as *;
  690. </style>