audit-data-formsq.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. <template>
  2. <div style="float:left" :class="$style.mainDiv">
  3. <table>
  4. <tr>
  5. <td>
  6. <audit-advanced-group
  7. :expand="unitExpand"
  8. :expand-str="'unitExpand'"
  9. :group-label="'授权单位'"
  10. tablestyle="''"
  11. @changedClick="changedClick"
  12. ><template>
  13. <SdChildTable
  14. ref="udata"
  15. v-model="unitdata"
  16. :label="null"
  17. :columns="unitcolumns"
  18. :modal-props="{ height: '470px' }"
  19. :fields="
  20. [
  21. {
  22. caption: '序号',
  23. name: 'sortNum',
  24. dataType: 'sortNum',
  25. },
  26. ].concat(unit)
  27. "
  28. :handle-before-add="dwRelSelect"
  29. :flagpage="true"
  30. >
  31. <template v-slot:form="{ model, fields }">
  32. <table>
  33. <tr>
  34. <SdFormItemTd name="unitName">
  35. <template v-slot:read-and-edit="{ editable }"
  36. >{{ model.unitName }}
  37. </template>
  38. </SdFormItemTd>
  39. <SdFormItemTd name="unitCode">
  40. <template v-slot:read-and-edit="{ editable }"
  41. >{{ model.unitCode }}
  42. </template>
  43. </SdFormItemTd>
  44. </tr>
  45. <tr>
  46. <SdFormItemTd name="empowerType" :colspan="3">
  47. <template v-slot:read-and-edit="{ editable }">
  48. <a-select v-model="model.empowerType">
  49. <a-select-option
  50. v-for="(key, i) in fields.empowerType.attr.selectListItem"
  51. :key="i"
  52. :value="key.value"
  53. >
  54. {{ key.label }}
  55. </a-select-option>
  56. </a-select>
  57. </template>
  58. </SdFormItemTd>
  59. </tr>
  60. <tr v-if="model.empowerType !== '1'">
  61. <SdFormItemTd name="startDate" />
  62. <SdFormItemTd name="endDate" range-after="startDate" />
  63. </tr>
  64. <tr v-if="model.empowerType === '1'">
  65. <td class="ant-form-item-label ant-form-item-label">
  66. <label title="开始日期" class="ant-form-item"> 开始日期 </label>
  67. </td>
  68. <td class="ant-form-item-control-wrapper">
  69. <a-date-picker v-model="model.startDate" :disabled="true" />
  70. </td>
  71. <td class="ant-form-item-label ant-form-item-label">
  72. <label title="结束日期" class="ant-form-item"> 结束日期 </label>
  73. </td>
  74. <td class="ant-form-item-control-wrapper">
  75. <a-date-picker v-model="model.endDate" :disabled="true" />
  76. </td>
  77. </tr>
  78. </table>
  79. </template> </SdChildTable
  80. ></template>
  81. </audit-advanced-group> </td
  82. ></tr>
  83. </table>
  84. <table>
  85. <tr>
  86. <td
  87. ><audit-advanced-group
  88. :expand="personalExpand"
  89. :expand-str="'personalExpand'"
  90. :group-label="'授权人员'"
  91. tablestyle="''"
  92. @changedClick="changedClick"
  93. ><template>
  94. <SdChildTable
  95. ref="pdata"
  96. v-model="personaldata"
  97. :label="null"
  98. :columns="personalcolumns"
  99. :modal-props="{ height: '470px' }"
  100. :fields="
  101. [
  102. {
  103. caption: '序号',
  104. name: 'sortNum',
  105. dataType: 'sortNum',
  106. },
  107. ].concat(personal)
  108. "
  109. :handle-before-add="pRelSelect"
  110. :flagpage="true"
  111. >
  112. <template v-slot:form="{ model, fields }">
  113. <table>
  114. <tr>
  115. <SdFormItemTd name="userName">
  116. <template v-slot:read-and-edit="{ editable }"
  117. >{{ model.userName }}
  118. </template>
  119. </SdFormItemTd>
  120. <SdFormItemTd name="userUnit">
  121. <template v-slot:read-and-edit="{ editable }"
  122. >{{ model.userUnit }}
  123. </template>
  124. </SdFormItemTd>
  125. </tr>
  126. <tr>
  127. <SdFormItemTd name="empowerType" :colspan="3">
  128. <template v-slot:read-and-edit="{ editable }">
  129. <a-select v-model="model.empowerType">
  130. <a-select-option
  131. v-for="(key, i) in fields.empowerType.attr.selectListItem"
  132. :key="i"
  133. :value="key.value"
  134. >
  135. {{ key.label }}
  136. </a-select-option>
  137. </a-select>
  138. </template>
  139. </SdFormItemTd>
  140. </tr>
  141. <tr v-if="model.empowerType !== '1'">
  142. <SdFormItemTd name="startDate" />
  143. <SdFormItemTd name="endDate" />
  144. </tr>
  145. <tr v-if="model.empowerType === '1'">
  146. <td class="ant-form-item-label ant-form-item-label">
  147. <label title="开始日期" class="ant-form-item"> 开始日期 </label>
  148. </td>
  149. <td class="ant-form-item-control-wrapper">
  150. <a-date-picker
  151. v-model="model.startDate"
  152. :disabled="model.empowerType === '1'"
  153. />
  154. </td>
  155. <td class="ant-form-item-label ant-form-item-label">
  156. <label title="结束日期" class="ant-form-item"> 结束日期 </label>
  157. </td>
  158. <td class="ant-form-item-control-wrapper">
  159. <a-date-picker
  160. v-model="model.endDate"
  161. :disabled="model.empowerType === '1'"
  162. />
  163. </td>
  164. </tr>
  165. </table>
  166. </template> </SdChildTable></template
  167. ></audit-advanced-group> </td
  168. ></tr>
  169. </table>
  170. <!-- <div v-show="false">
  171. <sd-group-picker
  172. ref="dwRelSelect"
  173. v-model="mainSendUnit"
  174. :single="false"
  175. :read-only="false"
  176. @change="changeunit"
  177. />
  178. </div>
  179. <div v-show="false">
  180. <sd-user-picker
  181. ref="pRelSelect"
  182. v-model="mainSendPersonal"
  183. :single="false"
  184. :read-only="false"
  185. @change="changep"
  186. />
  187. </div> -->
  188. </div>
  189. </template>
  190. <script>
  191. import { Modal, Message } from 'ant-design-vue'
  192. import crossWindowWatcher from '@/common/services/cross-window-watcher'
  193. import axios from '@/common/services/axios-instance'
  194. // import auditFormTopBanner from '../../components/audit-form-top-banner'
  195. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  196. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  197. import SdChildTable from '@/common/components/sd-child-table.vue'
  198. import SdFormItemTd from '@/common/components/sd-form-item-td.vue'
  199. import SdGroupPicker from '@/common/components/sd-group-picker.vue'
  200. import SdUserPicker from '@/common/components/sd-user-picker.vue'
  201. // import auditMaintainService from './audit-maintain-service'
  202. // import components from './_import-components/audit-datasq-form-import'
  203. export default {
  204. name: 'AuditDataFromsq',
  205. metaInfo: {
  206. title: '数据授权',
  207. },
  208. components: {
  209. // ...components,
  210. auditAdvancedGroup,
  211. SdChildTable,
  212. SdFormItemTd,
  213. },
  214. mixins: [auditAdvancedGroupMixins],
  215. props: {
  216. // 默认选中节点
  217. // key: {
  218. // type: Number,
  219. // default: 0,
  220. // },
  221. recordId: {
  222. type: String,
  223. default: '',
  224. },
  225. },
  226. data() {
  227. return {
  228. mainSendUnit: [],
  229. mainSendPersonal: [],
  230. selectedRowKeys: [],
  231. selectid: '',
  232. maintaindata: [],
  233. unitdata: [],
  234. personaldata: [],
  235. maintainExpand: true,
  236. unitExpand: true,
  237. personalExpand: true,
  238. personal: [],
  239. unit: [],
  240. columns: [
  241. {
  242. title: '序号',
  243. dataIndex: 'sortNum',
  244. customRender: (text, record, index) => `${index + 1}`,
  245. width: '80px',
  246. },
  247. {
  248. title: '模型名称',
  249. dataIndex: 'modelName',
  250. },
  251. {
  252. title: '模型编号',
  253. dataIndex: 'modelCode',
  254. },
  255. {
  256. title: '模型描述',
  257. dataIndex: 'modelDesc',
  258. },
  259. ],
  260. unitcolumns: [
  261. {
  262. title: '序号',
  263. dataIndex: 'sortNum',
  264. customRender: (text, record, index) => `${index + 1}`,
  265. width: '80px',
  266. },
  267. {
  268. title: '单位编号',
  269. dataIndex: 'unitCode',
  270. sdHidden: false,
  271. },
  272. {
  273. title: '单位名称',
  274. dataIndex: 'unitName',
  275. sdHidden: false,
  276. },
  277. {
  278. title: '授权类型',
  279. dataIndex: 'empowerType',
  280. sdHidden: false,
  281. },
  282. {
  283. title: '开始日期',
  284. dataIndex: 'startDate',
  285. sdHidden: false,
  286. },
  287. {
  288. title: '结束日期',
  289. dataIndex: 'endDate',
  290. sdHidden: false,
  291. },
  292. {
  293. dataIndex: 'id',
  294. sdHidden: true,
  295. },
  296. {
  297. dataIndex: 'unitOpt',
  298. sdHidden: true,
  299. },
  300. {
  301. dataIndex: 'unitId',
  302. sdHidden: true,
  303. },
  304. {
  305. dataIndex: 'selectOrgId',
  306. sdHidden: true,
  307. },
  308. {
  309. dataIndex: 'belongedOrgId',
  310. sdHidden: true,
  311. },
  312. {
  313. dataIndex: 'docType',
  314. sdHidden: true,
  315. },
  316. {
  317. dataIndex: 'maintainId',
  318. sdHidden: true,
  319. },
  320. {
  321. dataIndex: 'applyId',
  322. sdHidden: true,
  323. },
  324. ],
  325. personalcolumns: [
  326. {
  327. title: '序号',
  328. dataIndex: 'sortNum',
  329. customRender: (text, record, index) => `${index + 1}`,
  330. width: '80px',
  331. },
  332. {
  333. title: '用户名',
  334. dataIndex: 'userName',
  335. sdHidden: false,
  336. },
  337. {
  338. title: '所属单位',
  339. dataIndex: 'userUnit',
  340. sdHidden: false,
  341. },
  342. {
  343. title: '授权类型',
  344. dataIndex: 'empowerType',
  345. sdHidden: false,
  346. },
  347. {
  348. title: '开始日期',
  349. dataIndex: 'startDate',
  350. sdHidden: false,
  351. },
  352. {
  353. title: '结束日期',
  354. dataIndex: 'endDate',
  355. sdHidden: false,
  356. },
  357. {
  358. dataIndex: 'id',
  359. sdHidden: true,
  360. },
  361. {
  362. dataIndex: 'userId',
  363. sdHidden: true,
  364. },
  365. {
  366. dataIndex: 'userOpt',
  367. sdHidden: true,
  368. },
  369. {
  370. dataIndex: 'selectOrgId',
  371. sdHidden: true,
  372. },
  373. {
  374. dataIndex: 'belongedOrgId',
  375. sdHidden: true,
  376. },
  377. {
  378. dataIndex: 'docType',
  379. sdHidden: true,
  380. },
  381. {
  382. dataIndex: 'maintainId',
  383. sdHidden: true,
  384. },
  385. {
  386. dataIndex: 'applyId',
  387. sdHidden: true,
  388. },
  389. ],
  390. }
  391. },
  392. watch: {
  393. recordId() {
  394. // this.getmodelsqdata(this.recordId)
  395. },
  396. },
  397. created() {
  398. this.getfields()
  399. },
  400. methods: {
  401. panelEndYearChange(value) {},
  402. savetableh(index, field, data) {
  403. this.$refs[data].savetableh(index, field)
  404. },
  405. changeunit(values) {
  406. let iamAuditDwMxs = []
  407. iamAuditDwMxs = this.unitdata
  408. values.forEach((element) => {
  409. const index = iamAuditDwMxs.findIndex((i) => i.unitCode === element.code)
  410. if (index === -1) {
  411. const mmc = {}
  412. mmc.unitName = element.name
  413. mmc.unitCode = element.code
  414. mmc.unitId = element.code
  415. iamAuditDwMxs.push(mmc)
  416. }
  417. })
  418. this.unitdata = iamAuditDwMxs
  419. },
  420. changep(values) {
  421. let iamAuditPMxs = []
  422. iamAuditPMxs = this.personaldata
  423. // 过滤表格中已有的人员
  424. values.forEach((element) => {
  425. const index = iamAuditPMxs.findIndex((i) => i.userId === element.code)
  426. if (index === -1) {
  427. const mmc = {}
  428. mmc.userName = element.name
  429. mmc.userId = element.code
  430. axios({
  431. url: 'api/xcoa-mobile/v1/iammodelmaintain/findGroupByAccount?account=' + element.code,
  432. method: 'get',
  433. }).then((res) => {
  434. mmc.userUnit = res.data.name
  435. iamAuditPMxs.push(mmc)
  436. })
  437. }
  438. })
  439. this.personaldata = iamAuditPMxs
  440. },
  441. // 选择申请单位
  442. dwRelSelect() {
  443. // 选择申请单位
  444. setTimeout(() => {
  445. this.$refs.dwRelSelect.openPicker()
  446. }, 0)
  447. return true
  448. },
  449. pRelSelect() {
  450. // 选择申请单位
  451. setTimeout(() => {
  452. this.$refs.pRelSelect.openPicker()
  453. }, 0)
  454. return true
  455. },
  456. saveForm() {
  457. const udata = []
  458. const pdata = []
  459. this.unitdata.forEach((item) => {
  460. let sl = null
  461. let el = null
  462. if (item.empowerType === '0') {
  463. if (item.startDate !== undefined) {
  464. const s = new Date(item.startDate)
  465. const e = new Date(item.endDate)
  466. sl = s.getTime()
  467. el = e.getTime()
  468. }
  469. }
  470. udata.push({
  471. docType: 'date',
  472. empowerType: item.empowerType,
  473. startDate: sl,
  474. endDate: el,
  475. unitCode: item.unitCode,
  476. unitName: item.unitName,
  477. })
  478. })
  479. this.personaldata.forEach((item) => {
  480. let sl = null
  481. let el = null
  482. if (item.empowerType === '0') {
  483. if (item.startDate !== undefined) {
  484. const s = new Date(item.startDate)
  485. const e = new Date(item.endDate)
  486. sl = s.getTime()
  487. el = e.getTime()
  488. }
  489. }
  490. pdata.push({
  491. docType: 'date',
  492. empowerType: item.empowerType,
  493. startDate: sl,
  494. endDate: el,
  495. userId: item.userId,
  496. userUnit: item.userUnit,
  497. })
  498. })
  499. const params = {
  500. iamLicenseUnitEntitys: udata,
  501. iamLicensePeopleEntitys: pdata,
  502. }
  503. // auditMaintainService.saveIamAuditMaintain(params).then((res) => {
  504. // if (res) {
  505. // Message.success('保存成功', 1).then((res) => {
  506. // this.close(true)
  507. // })
  508. // }
  509. // })
  510. },
  511. close(flag) {
  512. crossWindowWatcher.notifyChange(this.$route.fullPath, flag)
  513. window.close()
  514. },
  515. showSelection() {
  516. return true
  517. },
  518. onSelectChange(selectedRowKeys) {
  519. this.selectedRowKeys = selectedRowKeys
  520. },
  521. getfields() {
  522. axios({
  523. url: 'api/xcoa-mobile/v1/page/wp/audit/maintain/iamLicensePeople',
  524. method: 'get',
  525. }).then((res) => {
  526. this.personal = res.data.pageFormData.pageFieldInfos
  527. })
  528. axios({
  529. url: 'api/xcoa-mobile/v1/page/wp/audit/maintain/iamLicenseUnit',
  530. method: 'get',
  531. }).then((res) => {
  532. this.unit = res.data.pageFormData.pageFieldInfos
  533. })
  534. },
  535. },
  536. }
  537. </script>
  538. <style module lang="scss">
  539. @use '@/common/design' as *;
  540. .btnselect {
  541. position: relative;
  542. // top: 4px;
  543. right: 80px;
  544. float: right;
  545. padding: 4px 0;
  546. .batchselect {
  547. z-index: 100;
  548. margin-left: 10px;
  549. }
  550. }
  551. :global(.maintaintable) {
  552. :global(.ant-table-tbody > tr > td) {
  553. border-right: none;
  554. border-left: none;
  555. }
  556. :global(.ant-table-thead > tr > th) {
  557. border-right: none;
  558. border-left: none;
  559. }
  560. :global(table) {
  561. border: none !important;
  562. }
  563. :global(.ant-table-placeholder) {
  564. border: none !important;
  565. }
  566. }
  567. .main-div {
  568. :global(.caption_sd-child-table_common) {
  569. top: -10px;
  570. z-index: 99;
  571. }
  572. }
  573. </style>