audit-model-sqapply.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. <template>
  2. <div>
  3. <sd-webflow
  4. ref="docform"
  5. :key="key"
  6. :validate-form="validForm"
  7. :removed-tabs="['sdRelatedDoc']"
  8. :class="$style.form"
  9. @actionBtnClick="actionBtnClick"
  10. >
  11. <template v-slot:form="{ model, fields, FlowData }">
  12. <table>
  13. <colgroup>
  14. <col style="width: 15%;"/>
  15. <col style="width: 35%;"/>
  16. <col style="width: 15%;"/>
  17. <col style="width: 35%;"
  18. /></colgroup>
  19. <tr v-show="false">
  20. <!-- 标题 -->
  21. <sd-form-item-td name="title" :colspan="3" />
  22. </tr>
  23. <tr>
  24. <td colspan="4" style="border:none">
  25. <audit-advanced-group
  26. :expand="expandJ"
  27. :expand-str="'expandJ'"
  28. :group-label="'基本信息'"
  29. @changedClick="changedClick"
  30. />
  31. </td>
  32. </tr>
  33. <tr v-show="expandJ">
  34. <!-- 申请人 -->
  35. <sd-form-item-td name="creatorName" />
  36. <!-- 模型名称 -->
  37. <sd-form-item-td name="modelName" />
  38. </tr>
  39. <tr v-show="expandJ">
  40. <!-- 申请时间 -->
  41. <sd-form-item-td name="creationTime" />
  42. <!-- 授权类型 -->
  43. </tr>
  44. <tr v-show="expandJ">
  45. <!-- 申请原因 -->
  46. <sd-form-item-td name="empowerReason" :colspan="3">
  47. <a-textarea v-model="model.empowerReason" :rows="3" />
  48. </sd-form-item-td>
  49. </tr>
  50. <tr
  51. ><td
  52. v-if="getmaintaindata(model, fields)"
  53. :colspan="4"
  54. style="line-height:40px;border:none1;"
  55. :class="$style.maintaintable"
  56. >
  57. <audit-advanced-group
  58. :expand="expandModel"
  59. :expand-str="'expandY'"
  60. :group-label="'模型列表'"
  61. @changedClick="changedClick"
  62. ><template>
  63. <sd-table
  64. ref="maintaintable"
  65. :loading="false"
  66. class="maintaintable"
  67. :columns="columns"
  68. :data-source="modelTableList"
  69. :pagination="false"
  70. :row-key="(record, index) => index"
  71. :bordered="true"
  72. >
  73. <template slot="link" slot-scope="text, record">
  74. <a @click="onlink(record.id)">{{ text }}</a>
  75. </template>
  76. </sd-table></template
  77. ></audit-advanced-group
  78. >
  79. </td>
  80. </tr>
  81. </table>
  82. </template>
  83. </sd-webflow>
  84. </div>
  85. </template>
  86. <script>
  87. import components from './_import-components/audit-model-sqapply-import'
  88. import { Modal, message } from 'ant-design-vue'
  89. import auditAdvancedGroup from '../../components/audit-advanced-group.vue'
  90. import auditAdvancedGroupMixins from '../../components/audit-advanced-group-mixins'
  91. import axios from '@/common/services/axios-instance'
  92. import auditModelService from './audit-model-service'
  93. import auditMaintainService from '../maintain/audit-maintain-service'
  94. import moment from 'moment'
  95. export default {
  96. name: 'AuditModelSqapply',
  97. metaInfo: {
  98. title: 'AuditModelSqapply',
  99. },
  100. components: {
  101. ...components,
  102. auditAdvancedGroup,
  103. },
  104. mixins: [auditAdvancedGroupMixins],
  105. data() {
  106. return {
  107. key: 0,
  108. expandJ: true,
  109. expandModel: true,
  110. modelTableList: [],
  111. columns: [
  112. {
  113. title: '序号',
  114. dataIndex: 'sortNum',
  115. customRender: (text, record, index) => `${index + 1}`,
  116. width: '80px',
  117. },
  118. // 模型名称
  119. // 模型编号
  120. // 模型描述
  121. {
  122. title: '模型名称',
  123. dataIndex: 'modelName',
  124. scopedSlots: { customRender: 'link' },
  125. },
  126. {
  127. title: '模型编号',
  128. dataIndex: 'modelCode',
  129. },
  130. {
  131. title: '模型描述',
  132. dataIndex: 'modelDesc',
  133. },
  134. ],
  135. selectedRowKeys: [],
  136. rules: [
  137. {
  138. required: true,
  139. trigger: ['change', 'blur'],
  140. },
  141. ],
  142. maintaineditable: false,
  143. modelFlag: true,
  144. maintaindata: [],
  145. tableFilter: ['modelId', 'modelCode', 'modelName', 'modelDesc'],
  146. }
  147. },
  148. created() {
  149. this.initModelData()
  150. },
  151. methods: {
  152. onlink(id) {
  153. window.open('#/audit-model-view?record=' + id)
  154. },
  155. onSelectChange(selectedRowKeys) {
  156. this.selectedRowKeys = selectedRowKeys
  157. },
  158. changeType() {
  159. const empowerType = this.$refs.docform.getFieldValue('empowerType')
  160. if (empowerType === '1') {
  161. this.$refs.docform.setFieldValue('startDate', '')
  162. this.$refs.docform.setFieldValue('endDate', '')
  163. }
  164. if (empowerType === '2') {
  165. // 设置开始时间 为当前时间
  166. // 结束时间为当年最后一天
  167. // 使用moment格式
  168. const start = moment()
  169. const end = moment().endOf('year')
  170. this.$refs.docform.setFieldValue('startDate', start)
  171. this.$refs.docform.setFieldValue('endDate', end)
  172. }
  173. this.saveForm()
  174. },
  175. actionBtnClick(evt, { button, FlowData }) {
  176. if (button.fakeId === 'save' || button.fakeId === 'workflow-push') {
  177. // 保存前先校验计划是否已经存在
  178. evt.waitUntil(
  179. new Promise((resolve, reject) => {
  180. this.saveForm().then((res) => {
  181. if (!res) {
  182. evt.preventDefault()
  183. }
  184. resolve()
  185. })
  186. })
  187. )
  188. }
  189. },
  190. saveForm() {
  191. const save = new Promise((resolve) => {
  192. this.$refs.docform.setFieldValue('docType', this.docType)
  193. resolve(true)
  194. })
  195. return save
  196. },
  197. validForm() {
  198. this.$refs.docform.setFieldValue(
  199. 'title',
  200. this.$refs.docform.getFieldValue('creatorName') + '模型发布申请'
  201. )
  202. return Promise.resolve(true)
  203. },
  204. // 获取模型数据 (保存后)
  205. getmaintaindata(model, fields) {
  206. if (this.modelFlag) {
  207. // this.maintaineditable = !fields.iamLicenseUnitEntitys.readonly
  208. const id = model.id
  209. if (id) {
  210. const obj = {}
  211. this.tableFilter.map((item) => {
  212. obj[item] = fields[item].value
  213. })
  214. this.modelTableList = [obj]
  215. obj.id = obj.modelId
  216. }
  217. this.modelFlag = false
  218. }
  219. return true
  220. },
  221. // 获取模型数据 (保存前)
  222. initModelData() {
  223. if (!this.$route.query.extParams) return
  224. const extParams = JSON.parse(this.$route.query.extParams)
  225. auditModelService.getModelDetail(extParams.record).then((res) => {
  226. const tableFields = [...this.tableFilter]
  227. tableFields[0] = 'id'
  228. const fields = res.data.pageFormData.pageFieldInfos.filter((item) =>
  229. tableFields.includes(item.name)
  230. )
  231. const obj = {}
  232. fields.map((item) => {
  233. obj[item.name] = item.value
  234. })
  235. this.modelTableList = [obj]
  236. this.$refs.docform.setFieldValue('modelName', obj.modelName)
  237. this.$refs.docform.setFieldValue('modelCode', obj.modelCode)
  238. this.$refs.docform.setFieldValue('modelId', obj.id)
  239. // this.key += 1
  240. })
  241. },
  242. },
  243. }
  244. </script>
  245. <style module lang="scss">
  246. @use '@/common/design' as *;
  247. @import '@/webflow/sd-flow-form.scss';
  248. .btnselect {
  249. position: relative;
  250. top: 2px;
  251. right: 80px;
  252. float: right;
  253. .batchselect {
  254. z-index: 100;
  255. margin-left: 10px;
  256. }
  257. }
  258. .btnselectmaintain {
  259. position: relative;
  260. float: right;
  261. .batchselect {
  262. z-index: 100;
  263. margin-right: -10px;
  264. margin-left: 10px;
  265. }
  266. }
  267. .maintaintable {
  268. :global(.ant-table-thead > tr > th) {
  269. border-right: none;
  270. }
  271. :global(.ant-table-bordered.ant-table-empty .ant-table-placeholder) {
  272. border: none;
  273. }
  274. :global(.ant-table-body table) {
  275. // border-left:none;
  276. border: none;
  277. }
  278. }
  279. </style>