hrp-ui-base 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/components.cjs +1 -1
  2. package/dist/components.es.js +4 -4
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.es.js +83 -67
  5. package/dist/style.css +1 -1
  6. package/package.json +15 -4
  7. package/packages/approval-process/.eslintrc +7 -0
  8. package/packages/approval-process/README.md +130 -0
  9. package/packages/approval-process/index.ts +65 -0
  10. package/packages/approval-process/package.json +17 -0
  11. package/packages/approval-process/packages/components/choose-member/BO/departBo.ts +8 -0
  12. package/packages/approval-process/packages/components/choose-member/BO/memberBo.ts +14 -0
  13. package/packages/approval-process/packages/components/choose-member/BO/role.svg +1 -0
  14. package/packages/approval-process/packages/components/choose-member/BO/roleBo.ts +16 -0
  15. package/packages/approval-process/packages/components/choose-member/index.vue +497 -0
  16. package/packages/approval-process/packages/components/choose-member/styles/common.scss +134 -0
  17. package/packages/approval-process/packages/components/comment/assets/avatar.svg +1 -0
  18. package/packages/approval-process/packages/components/comment/assets/download.svg +4 -0
  19. package/packages/approval-process/packages/components/comment/assets/mp3.svg +11 -0
  20. package/packages/approval-process/packages/components/comment/assets/mp4.svg +11 -0
  21. package/packages/approval-process/packages/components/comment/assets/other.svg +11 -0
  22. package/packages/approval-process/packages/components/comment/assets/pdf.svg +11 -0
  23. package/packages/approval-process/packages/components/comment/assets/ppt.svg +11 -0
  24. package/packages/approval-process/packages/components/comment/assets/preview.svg +4 -0
  25. package/packages/approval-process/packages/components/comment/assets/remove.png +0 -0
  26. package/packages/approval-process/packages/components/comment/assets/word.svg +11 -0
  27. package/packages/approval-process/packages/components/comment/assets/xls.svg +11 -0
  28. package/packages/approval-process/packages/components/comment/index.vue +843 -0
  29. package/packages/approval-process/packages/components/comment/modules/previewMp.vue +54 -0
  30. package/packages/approval-process/packages/components/comment/styles/comment-style.scss +304 -0
  31. package/packages/approval-process/packages/components/image-cropper/index.vue +202 -0
  32. package/packages/approval-process/packages/components/sign/index.vue +766 -0
  33. package/packages/approval-process/packages/components/sign/modules/full-screen-sign.vue +20 -0
  34. package/packages/approval-process/packages/components/urge-dialog/index.vue +121 -0
  35. package/packages/approval-process/packages/components/vue-esign/index.vue +289 -0
  36. package/packages/approval-process/packages/flow/approve-component/approve-success.vue +82 -0
  37. package/packages/approval-process/packages/flow/approve-component/route-params-error.vue +49 -0
  38. package/packages/approval-process/packages/flow/approve-component/submit-success.vue +59 -0
  39. package/packages/approval-process/packages/flow/examine-approve-itr.vue +978 -0
  40. package/packages/approval-process/packages/flow/examine-approve.vue +1065 -0
  41. package/packages/approval-process/packages/flow/form-component/associated-approval-form/README.md +38 -0
  42. package/packages/approval-process/packages/flow/form-component/associated-approval-form/assets/avatar.svg +1 -0
  43. package/packages/approval-process/packages/flow/form-component/associated-approval-form/index.vue +159 -0
  44. package/packages/approval-process/packages/flow/form-component/associated-approval-form/modules/associated-approval-form-mobile.vue +297 -0
  45. package/packages/approval-process/packages/flow/form-component/associated-approval-form/modules/associated-approval-form-pc.vue +314 -0
  46. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/curd-area-mobile.scss +110 -0
  47. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/curd-area.scss +96 -0
  48. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/out-put.scss +48 -0
  49. package/packages/approval-process/packages/flow/form-component/show-sign.vue +27 -0
  50. package/packages/approval-process/packages/flow/styles/common.scss +134 -0
  51. package/packages/approval-process/packages/flow/styles/examine-approve-pc.scss +465 -0
  52. package/packages/approval-process/packages/flow/styles/examine-approve-phone.scss +293 -0
  53. package/packages/approval-process/packages/flow/styles/submit-approve-pc.scss +379 -0
  54. package/packages/approval-process/packages/flow/styles/submit-approve-phone.scss +337 -0
  55. package/packages/approval-process/packages/flow/submit-approve-itr.vue +623 -0
  56. package/packages/approval-process/packages/flow/submit-approve.vue +628 -0
  57. package/packages/approval-process/packages/flow/systemCom/BO/departBo.ts +8 -0
  58. package/packages/approval-process/packages/flow/systemCom/BO/memberBo.ts +14 -0
  59. package/packages/approval-process/packages/flow/systemCom/BO/role.svg +1 -0
  60. package/packages/approval-process/packages/flow/systemCom/BO/roleBo.ts +16 -0
  61. package/packages/approval-process/packages/flow/systemCom/choose-depart.vue +399 -0
  62. package/packages/approval-process/packages/flow/systemCom/choose-member-phone.vue +515 -0
  63. package/packages/approval-process/packages/flow/systemCom/choose-member.vue +565 -0
  64. package/packages/approval-process/packages/flow/systemCom/choose-role.vue +301 -0
  65. package/packages/approval-process/packages/styles/common.scss +134 -0
  66. package/packages/approval-process/packages/styles/flex-common.scss +118 -0
  67. package/packages/approval-process/packages/styles/flexCommon.scss +73 -0
  68. package/packages/approval-process/packages/styles/main.css +216 -0
  69. package/packages/approval-process/packages/styles/router-page.scss +371 -0
  70. package/packages/approval-process/packages/styles/style-set.ts +207 -0
  71. package/packages/approval-process/packages/types.d.ts +4 -0
  72. package/packages/approval-process/packages/utils/base.ts +15 -0
  73. package/packages/approval-process/packages/utils/crypto.ts +67 -0
  74. package/packages/approval-process/packages/utils/ddUtils.ts +56 -0
  75. package/packages/approval-process/packages/utils/debounce.ts +36 -0
  76. package/packages/approval-process/packages/utils/des.js +1107 -0
  77. package/packages/approval-process/packages/utils/download.ts +38 -0
  78. package/packages/approval-process/packages/utils/editor.ts +37 -0
  79. package/packages/approval-process/packages/utils/getEnv.ts +36 -0
  80. package/packages/approval-process/packages/utils/os.ts +20 -0
  81. package/packages/approval-process/packages/utils/path-util.ts +31 -0
  82. package/packages/approval-process/packages/utils/routerUtil.ts +304 -0
  83. package/packages/approval-process/packages/utils/string-utils.ts +13 -0
  84. package/packages/approval-process/packages/utils/throttle.ts +44 -0
  85. package/packages/approval-process/packages/utils/validate.ts +92 -0
  86. package/packages/approval-process/packages/utils/ws.ts +218 -0
  87. package/packages/approval-process/tsconfig.json +72 -0
  88. package/packages/approval-process/vite.config.ts +56 -0
  89. package/src/api/bms/flow/FlowCommentController.ts +50 -0
  90. package/src/api/bms/flow/FlowInstanceController.ts +167 -0
  91. package/src/api/bms/flow/FlowProcessController.ts +55 -0
  92. package/src/api/bms/flow/FlowSheetController.ts +27 -0
  93. package/src/api/bms/flow/FlowSignController.ts +76 -0
  94. package/src/api/bms/flow/bo/AssociatedApprovalBO.ts +15 -0
  95. package/src/api/bms/flow/bo/AssociatedApprovalVO.ts +35 -0
  96. package/src/api/bms/flow/bo/AuditBaseInfo.ts +39 -0
  97. package/src/api/bms/flow/bo/ButtonVo.ts +7 -0
  98. package/src/api/bms/flow/bo/DingCallbackBo.ts +13 -0
  99. package/src/api/bms/flow/bo/FlowCommentBO.ts +12 -0
  100. package/src/api/bms/flow/bo/FlowCommentVO.ts +23 -0
  101. package/src/api/bms/flow/bo/FlowInstanceBO.ts +14 -0
  102. package/src/api/bms/flow/bo/FlowNodeVO.ts +24 -0
  103. package/src/api/bms/flow/bo/FlowNoticeBO.ts +17 -0
  104. package/src/api/bms/flow/bo/FlowProcessBO.ts +13 -0
  105. package/src/api/bms/flow/bo/FlowProcessVO.ts +9 -0
  106. package/src/api/bms/flow/bo/FlowReplyVO.ts +23 -0
  107. package/src/api/bms/flow/bo/FlowSheetVO.ts +16 -0
  108. package/src/api/bms/flow/bo/InstanceBackBO.ts +9 -0
  109. package/src/api/bms/flow/bo/InstanceNodeBO.ts +13 -0
  110. package/src/api/bms/flow/bo/InstanceNodeVO.ts +21 -0
  111. package/src/api/bms/flow/bo/NodeShowVo.ts +19 -0
  112. package/src/api/bms/flow/bo/ReviewBO.ts +11 -0
  113. package/src/api/bms/flow/bo/SheetSearchBO.ts +11 -0
  114. package/src/api/bms/flow/bo/SystemVO.ts +7 -0
  115. package/src/api/bms/flow/bo/TransmitBO.ts +9 -0
  116. package/src/api/bms/flow/bo/UrgeFlowBO.ts +7 -0
  117. package/src/api/bms/flow/bo/UserBaseInfoVo.ts +13 -0
  118. package/src/api/bms/flow/bo/UserInfoVo.ts +44 -0
  119. package/src/api/bms/flow/bo/UserResultVo.ts +17 -0
  120. package/src/api/bms/flow/bo/ValueMapBo.ts +7 -0
  121. package/src/api/bms/home/HomeController.ts +106 -0
  122. package/src/api/bms/home/bo/CollectedMenuBo.ts +9 -0
  123. package/src/api/bms/home/bo/DeptBaseVo.ts +9 -0
  124. package/src/api/bms/home/bo/DomainVO.ts +13 -0
  125. package/src/api/bms/home/bo/FunPermission.ts +17 -0
  126. package/src/api/bms/home/bo/GroupVO.ts +10 -0
  127. package/src/api/bms/home/bo/HomeMenu.ts +22 -0
  128. package/src/api/bms/home/bo/HomeMenuVo.ts +11 -0
  129. package/src/api/bms/home/bo/PersonalizationBo.ts +17 -0
  130. package/src/api/bms/home/bo/PersonalizationVo.ts +19 -0
  131. package/src/api/bms/home/bo/PhoneMenu.ts +14 -0
  132. package/src/api/bms/home/bo/SearchMenuVo.ts +10 -0
  133. package/src/api/bms/home/bo/UserBaseInfoVo.ts +11 -0
  134. package/src/api/hrms/dept/bo/DeptBaseVo.ts +6 -0
  135. package/src/api/hrms/dept/bo/DeptTreeVo.ts +23 -0
  136. package/src/api/hrms/dept/bo/DeptUserVo.ts +9 -0
  137. package/src/api/hrms/dept/bo/DeptUsersVo.ts +10 -0
  138. package/src/api/hrms/dept/bo/DeptVo.ts +19 -0
  139. package/src/api/hrms/dept/bo/UserBaseInfoVo.ts +8 -0
  140. package/src/api/hrms/dept/deptController.ts +100 -0
  141. package/src/api/hrms/role/bo/RoleBaseVo.ts +6 -0
  142. package/src/api/hrms/role/bo/RoleGroupVo.ts +11 -0
  143. package/src/api/hrms/role/bo/RoleVo.ts +22 -0
  144. package/src/api/hrms/role/roleController.ts +19 -0
  145. package/src/api/hrms/user/bo/UserBaseInfoVo.ts +11 -0
  146. package/src/api/hrms/user/bo/UserCardVO.ts +14 -0
  147. package/src/api/hrms/user/bo/UserDeptBO.ts +13 -0
  148. package/src/api/hrms/user/bo/UserRoleBO.ts +11 -0
  149. package/src/api/hrms/user/bo/UserVO.ts +23 -0
  150. package/src/api/hrms/user/userController.ts +86 -0
  151. package/src/api/work-order-pc/flow/Bo/ValueMapBo.ts +7 -0
  152. package/src/api/work-order-pc/flow/ItrFlowProcessController.ts +42 -0
  153. package/src/api/work-order-pc/flow/Vo/FlowNodeVO.ts +24 -0
  154. package/src/api/work-order-pc/flow/Vo/UserInfoVo.ts +44 -0
  155. package/src/assets/process/agree.png +0 -0
  156. package/src/assets/process/defaultAvatar.png +0 -0
  157. package/src/assets/process/drawer/departManagerJump.png +0 -0
  158. package/src/assets/process/drawer/manyLevel1close.svg +10 -0
  159. package/src/assets/process/drawer/manyLevel1open.svg +7 -0
  160. package/src/assets/process/drawer/manyLevel2close.svg +7 -0
  161. package/src/assets/process/drawer/manyLevel2open.svg +7 -0
  162. package/src/assets/process/inProcess.png +0 -0
  163. package/src/assets/process/manyPeople.png +0 -0
  164. package/src/assets/process/manyPeople2.png +0 -0
  165. package/src/assets/process/reject.png +0 -0
  166. package/src/assets/process/revoke.png +0 -0
  167. package/src/components/annex-img-upload/index.vue +4 -4
  168. package/src/components/annex-img-upload/modules/previewMp.vue +1 -1
  169. package/src/components/annex-upload/index.vue +4 -4
  170. package/src/components/annex-upload/modules/previewMp.vue +1 -1
  171. package/src/components/annex-upload-weijian/index.vue +4 -4
  172. package/src/components/annex-upload-weijian/modules/previewMp.vue +1 -1
  173. package/src/components/list-search-content/components/search-date-range.vue +1 -1
  174. package/src/components/list-search-content/components/search-date-time-range.vue +1 -1
  175. package/src/components/list-search-content/components/search-date.vue +1 -1
  176. package/src/components/list-search-content/components/search-input-number.vue +1 -1
  177. package/src/components/list-search-content/components/search-input.vue +1 -1
  178. package/src/components/list-search-content/components/search-multiple_select.vue +1 -1
  179. package/src/components/list-search-content/components/search-select.vue +1 -1
  180. package/src/components/list-search-content/index.vue +6 -6
  181. package/src/components/list-search-content/modules/add-views-package-dialog.vue +3 -3
  182. package/src/components/list-search-content/modules/search-condition-area.vue +2 -2
  183. package/src/components/list-search-content/modules/views-package-manage-dialog.vue +5 -5
  184. package/src/index.ts +1 -0
  185. package/src/utils/dd-utils.ts +1 -1
  186. package/src/utils/get-dict.ts +2 -2
  187. package/src/utils/permit-utils.ts +2 -2
  188. package/src/api/bms/dict/bo/TotalDictSearchBO.ts +0 -8
  189. package/src/api/bms/file/FileExportController.ts +0 -18
  190. package/src/api/bms/file/bo/FileExportVO.ts +0 -17
@@ -0,0 +1,314 @@
1
+ <!--
2
+ * @description: 关联审批单弹窗组件pc端
3
+ * @fileName: associated-approval-form-pc.vue
4
+ * @author: huatuo
5
+ !-->
6
+ <template>
7
+ <el-dialog v-model="dialogVisible" :title="dialogTitle" width="85%" size="default" style="min-width: 1100px"
8
+ class="associated-approvel-dialog-box" top="4vh">
9
+ <div class="associated-approvel-dialog-content" v-loading="formLoading">
10
+ <el-tabs v-model="searchBo.approvalTypeCode" class="demo-tabs" @tab-change="changeTabType" stretch>
11
+ <el-tab-pane label="我审批的" name="Approver"></el-tab-pane>
12
+ <el-tab-pane label="我发起的" name="Create"></el-tab-pane>
13
+ <el-tab-pane label="抄送我的" name="Ccto"></el-tab-pane>
14
+ </el-tabs>
15
+ <el-input v-model="searchBo.keyWord" placeholder="搜索名字、标题、表单id" class="associated-search-input"
16
+ @input="getListOne" clearable>
17
+ </el-input>
18
+ <div class="flexRowStart">
19
+ 审批类型:
20
+ <el-select v-model="searchBo.jobName" filterable placeholder="请选择" style="width: 240px" clearable
21
+ @change="getList">
22
+ <el-option v-for="item in jobList" :key="item.id" :label="item.name" :value="item.id" />
23
+ </el-select>
24
+ </div>
25
+ <el-divider class="associated-divider" />
26
+ <div class="scroller-area-box">
27
+ <div class="search-approval-list-box">
28
+ <div class="search-approval-item" v-for="(item, index) in tableData" :key="item.formId"
29
+ @click="addItemToCheck(item, index)">
30
+ <div class="search-approval-left">
31
+ <el-checkbox v-model="item.checked" label="" size="large" @click.prevent="" />
32
+ <img :src="item.avatar || defaultAvatar" :alt="item.createUserName">
33
+ <div class="search-approval-item-content">
34
+ <div class="search-approval-item-form-name">
35
+ {{ item.createUserName + '发起的' + item.jobName }}
36
+ </div>
37
+ <div class="search-approval-item-man">
38
+ {{ '发起人:' + (item.createUserName || '-') }}
39
+ </div>
40
+ <div class="search-approval-item-create-time">
41
+ {{ '创建时间:' + (item.createTime || '-') }}
42
+ </div>
43
+
44
+ <div class="search-approval-item-end-time">
45
+ {{ '结束时间:' + (item.finishTime || '-') }}
46
+ </div>
47
+ </div>
48
+ </div>
49
+ <div class="search-approval-right">
50
+ <span
51
+ :style="item.statusCode === 'success' ? { color: '#67C23A' } : item.statusCode === 'fail' ? { color: '#F56C6C' } : { color: '#909399' }">{{
52
+ item.statusName
53
+ }}</span>
54
+ </div>
55
+
56
+ </div>
57
+ </div>
58
+ <div style="display: flex; justify-content: flex-end">
59
+ <el-pagination style="padding-top: 30px" background layout="total, sizes, prev, pager, next, jumper"
60
+ :page-sizes="[10, 20, 30, 40, 50, 100]" :total="tableTotal" v-model:page-size="searchBo.pageSize"
61
+ v-model:current-page="searchBo.pageNum" @current-change="getList" @size-change="getList" />
62
+ </div>
63
+ <div>当前选中的数据</div>
64
+ <el-table :data="currentDataList" stripe v-loading="formLoading"
65
+ @select="selectHandler" @select-all="selectHandler" border style="width: 100%" ref="tableRef"
66
+ row-key="formId">
67
+ <el-table-column type="index" label="序号" align="center" width="70px" />
68
+ <el-table-column prop="jobName" label="审批单名称" align="center">
69
+ <template #default="{ row }">
70
+ <el-tooltip effect="dark" placement="top" :content="row.createUserName + '发起的' + row.jobName"
71
+ :show-after="500">
72
+ <div class="table-cell-text">
73
+ <span>{{ row.createUserName + '发起的' + row.jobName }}</span>
74
+ </div>
75
+ </el-tooltip>
76
+ </template>
77
+ </el-table-column>
78
+ <el-table-column prop="createTime" label="创建时间" align="center">
79
+ <template #default="{ row }">
80
+ <el-tooltip effect="dark" placement="top" :content="row.createTime" :show-after="500">
81
+ <div class="table-cell-text">
82
+ <span>{{ row.createTime }}</span>
83
+ </div>
84
+ </el-tooltip>
85
+ </template>
86
+ </el-table-column>
87
+ <el-table-column prop="finishTime" label="结束时间" align="center">
88
+ <template #default="{ row }">
89
+ <el-tooltip effect="dark" placement="top" :content="row.finishTime" :show-after="500">
90
+ <div class="table-cell-text">
91
+ <span>{{ row.finishTime }}</span>
92
+ </div>
93
+ </el-tooltip>
94
+ </template>
95
+ </el-table-column>
96
+ <el-table-column prop="statusName" label="审批状态" align="center">
97
+ <template #default="{ row }">
98
+ <el-tooltip effect="dark" placement="top" :content="row.statusName" :show-after="500">
99
+ <div class="table-cell-text">
100
+ <span>{{ row.statusName }}</span>
101
+ </div>
102
+ </el-tooltip>
103
+ </template>
104
+ </el-table-column>
105
+ <el-table-column label="操作" align="center" width="180"
106
+ v-hasPermi="['material-management/base-information/goods-sort-edit', 'material-management/base-information/goods-sort-delete']">
107
+
108
+ <template #default="{ row, $index }">
109
+ <el-button link type="danger" @click="deleteProcessOrder(row, $index)">删除</el-button>
110
+ </template>
111
+ </el-table-column>
112
+
113
+ </el-table>
114
+ </div>
115
+ </div>
116
+ <template #footer>
117
+ <template v-if="formType != 'detail'">
118
+ <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
119
+ <el-button @click="dialogVisible = false" :disabled="formLoading">取 消</el-button>
120
+ </template>
121
+ </template>
122
+ </el-dialog>
123
+
124
+ </template>
125
+ <script lang="ts" name="associatedApprovalFormPc" setup>
126
+ import { ref, reactive } from "vue";
127
+ import { ElMessage, ElMessageBox } from "element-plus";
128
+ import moment from "moment/moment";
129
+ import throttle from '../../../../utils/throttle'
130
+ import type AssociatedApprovalBO from "hrp-ui-base/api/bms/flow/bo/AssociatedApprovalBO";
131
+ import type AssociatedApprovalVO from "hrp-ui-base/api/bms/flow/bo/AssociatedApprovalVO";
132
+ import type SystemVO from "hrp-ui-base/api/bms/flow/bo/SystemVO";
133
+ import FlowInstanceController from "hrp-ui-base/api/bms/flow/FlowInstanceController";
134
+ import FlowSheetController from "hrp-ui-base/api/bms/flow/FlowSheetController";
135
+ import { debounce } from "lodash";
136
+ import defaultAvatar from '../../associated-approval-form/assets/avatar.svg'
137
+
138
+ const props = defineProps(['chooseDetailList'])
139
+ /** 成功回调向上传输选中的数据 */
140
+ const emits = defineEmits(['success'])
141
+ /** 个人信息 */
142
+ const dialogVisible = ref(false); // 弹窗的是否展示
143
+ const dialogTitle = ref(""); // 弹窗的标题
144
+ const formLoading = ref(false); // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
145
+ const formType = ref(""); // add - 新增; edit - 修改 ; detail - 详情
146
+
147
+ const formRef = ref(); // 表单 Ref
148
+ /** 分页总数 */
149
+ const tableTotal = ref<number>(0)
150
+ const searchBo = ref<AssociatedApprovalBO>({
151
+ approvalTypeCode: 'Create',
152
+ jobName: '',
153
+ statusCode: 'success',
154
+ keyWord: '',
155
+ pageSize: 10,
156
+ pageNum: 1,
157
+ })
158
+ /** 分页数据 */
159
+ const tableData = ref<AssociatedApprovalVO[]>([])
160
+ /** 请求来的数据的分页 */
161
+ const tableRef = ref()
162
+ /** 获取可供选择的数据列表 */
163
+ const getList = async () => {
164
+ tableData.value = []
165
+ await FlowInstanceController.selectAssociatedApprovalFormList(searchBo.value).then((data) => {
166
+ if (data.code == 200 && data.res) {
167
+ tableData.value = data.res.records
168
+ tableTotal.value = data.res.total
169
+ searchBo.value.pageSize = data.res.size
170
+ searchBo.value.pageNum = data.res.current
171
+
172
+ if (currentDataList.value.length > 0) {
173
+ for (let i = 0; i < tableData.value.length; i++) {
174
+ for (let j = 0; j < currentDataList.value.length; j++) {
175
+ if (tableData.value[i].formId === currentDataList.value[j].formId) {
176
+ tableData.value[i].checked = true
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ })
184
+ }
185
+ /** 获取可供选择的数据列表 */
186
+ const getListOne = debounce(async () => {
187
+ await FlowInstanceController.selectAssociatedApprovalFormList(searchBo.value).then((data) => {
188
+ if (data.code == 200 && data.res) {
189
+ tableData.value = data.res.records
190
+ tableTotal.value = data.res.total
191
+ searchBo.value.pageSize = data.res.size
192
+ searchBo.value.pageNum = data.res.current
193
+
194
+ if (currentDataList.value.length > 0) {
195
+ for (let i = 0; i < tableData.value.length; i++) {
196
+ for (let j = 0; j < currentDataList.value.length; j++) {
197
+ if (tableData.value[i].formId === currentDataList.value[j].formId) {
198
+ tableData.value[i].checked = true
199
+ break;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ })
206
+ }, 1000)
207
+ /** 当前用户选中数据列表 */
208
+ const currentDataList = ref<AssociatedApprovalVO[]>([])
209
+ /** 打开弹窗 */
210
+ const open = async (rows: AssociatedApprovalVO[]) => {
211
+ dialogVisible.value = true;
212
+ dialogTitle.value = "关联审批单";
213
+ resetForm();
214
+ if (rows && Array.isArray(rows) && rows.length > 0) {
215
+ currentDataList.value = JSON.parse(JSON.stringify(rows))
216
+ } else {
217
+ currentDataList.value = [];
218
+ }
219
+ formLoading.value = true
220
+ getJobNameList()
221
+ await getList();
222
+ formLoading.value = false
223
+ };
224
+ /** 提交表单 */
225
+ const submitForm = new throttle().use(async () => {
226
+ // 校验表单
227
+ formLoading.value = true;
228
+ emits('success', currentDataList.value)
229
+ dialogVisible.value = false
230
+ formLoading.value = false;
231
+
232
+ }, 2000, true);
233
+
234
+ /** 重置表单 */
235
+ const resetForm = () => {
236
+
237
+ formRef.value?.resetFields();
238
+ };
239
+
240
+
241
+ /** 切换上方tabs */
242
+ const changeTabType = async (type: string) => {
243
+ formLoading.value = true;
244
+ searchBo.value.approvalTypeCode = type
245
+ await getList();
246
+ formLoading.value = false;
247
+ }
248
+
249
+ // table函数
250
+ const selectList = ref<AssociatedApprovalVO[]>([])
251
+ // 选择某条入库单
252
+ const selectHandler = (selection: AssociatedApprovalVO[], row: AssociatedApprovalVO) => {
253
+ selectList.value = selection
254
+ }
255
+
256
+
257
+ /** 获取所有应用列表 */
258
+ const jobList = ref<SystemVO[]>([])
259
+ const getJobNameList = async () => {
260
+ await FlowSheetController.selectFlowSheetList().then((data) => {
261
+ if (data.code === 200 && data.res) {
262
+ jobList.value = data.res;
263
+ } else {
264
+ jobList.value = [];
265
+ }
266
+ });
267
+ };
268
+ /** 删除审批单 */
269
+ const deleteProcessOrder = (row: AssociatedApprovalVO, index: number) => {
270
+ let tableAimIndex = tableData.value.findIndex((item) => { return item.formId === row.formId })
271
+ if (tableAimIndex > -1) {
272
+ tableData.value[tableAimIndex].checked = false
273
+ }
274
+ currentDataList.value.splice(index, 1)
275
+ }
276
+ /** 选中、反选 审批单 */
277
+ const addItemToCheck = (item: AssociatedApprovalVO, index: number) => {
278
+ if (item.checked) {
279
+ item.checked = false;
280
+ let indexOfChecked = currentDataList.value.findIndex((i) => {
281
+ return i.formId === item.formId
282
+ });
283
+ currentDataList.value.splice(indexOfChecked, 1)
284
+ } else {
285
+ item.checked = true;
286
+ currentDataList.value.push(item);
287
+ }
288
+ }
289
+ // 导出方法
290
+ defineExpose({ open }); // 提供 open 方法,用于打开弹窗
291
+ </script>
292
+
293
+ <style scoped lang="scss">
294
+ @use '../style/curd-area.scss';
295
+ </style>
296
+
297
+ <style lang="scss">
298
+ .associated-approvel-dialog-box {
299
+ .el-form-item {
300
+ margin-bottom: 18px;
301
+ }
302
+
303
+ .el-dialog__body {
304
+ height: auto;
305
+ max-height: 700px;
306
+ overflow-y: auto;
307
+ }
308
+
309
+ .el-form-item__content {
310
+ width: 100%;
311
+ margin-left: 0 !important;
312
+ }
313
+ }
314
+ </style>
@@ -0,0 +1,110 @@
1
+ .associated-approvel-dialog-content-mobile{
2
+ height:100%;
3
+ overflow-y: auto;
4
+ overflow-x: hidden;
5
+ width: 100%;
6
+ padding:8px 18px;
7
+ }
8
+ .associated-button-box{
9
+ height: 30px;
10
+ padding: 0 18px;
11
+ display: flex;
12
+ flex-direction: row;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ .associated-button-cancel{
16
+ color: #606266;
17
+ }
18
+ .associated-button-submit{
19
+ color: #1989fa;
20
+
21
+ }
22
+ }
23
+ .associated-search-input {
24
+ width: 100%;
25
+ margin-bottom: 8px;
26
+ }
27
+
28
+ .associated-divider {
29
+ margin-bottom: 8px;
30
+ margin-top: 8px;
31
+ }
32
+
33
+ .search-approval-list-box {
34
+ width: 100%;
35
+ display: flex;
36
+ flex-direction: column;
37
+ justify-content: flex-start;
38
+ align-items: flex-start;
39
+
40
+ .search-approval-item {
41
+ width: 100%;
42
+
43
+ display: flex;
44
+ flex-direction: row;
45
+ justify-content: space-between;
46
+ align-items: flex-start;
47
+ min-height: 120px;
48
+ height: auto;
49
+ padding: 8px;
50
+ border: 2px solid #fff;
51
+ border-bottom: 2px solid #F5F7FA;
52
+ border-radius: 8px;
53
+ line-height: 14px;
54
+ cursor: pointer;
55
+ .search-approval-left {
56
+ display: flex;
57
+ flex-direction: row;
58
+ justify-content: flex-start;
59
+ align-items: flex-start;
60
+
61
+ img {
62
+ width: 32px;
63
+ height: 32px;
64
+ border-radius: 8px;
65
+ margin-top: 6px;
66
+ margin-right: 12px;
67
+ }
68
+ }
69
+
70
+ .search-approval-item-content {
71
+ .search-approval-item-form-name {
72
+ font-size: 14px;
73
+ margin-top: 8px;
74
+ color: var(--el-text-color-primary);
75
+ }
76
+
77
+ .search-approval-item-man {
78
+ color: #606266;
79
+ font-size: 12px;
80
+ margin-top: 8px;
81
+ }
82
+
83
+ .search-approval-item-create-time {
84
+ color: #606266;
85
+ font-size: 12px;
86
+ margin-top:6px;
87
+ }
88
+
89
+ .search-approval-item-end-time {
90
+ color: #606266;
91
+ font-size: 12px;
92
+ margin-top: 6px;
93
+ }
94
+
95
+ }
96
+
97
+ .search-approval-right {
98
+ min-width: 80px;
99
+ text-align: right;
100
+ margin-top: 8px;
101
+ }
102
+ }
103
+ }
104
+ .scroller-area-box{
105
+ max-height: 430px;
106
+ overflow: auto;
107
+ }
108
+ .search-approval-item:hover {
109
+ border: 2px solid #409EFF;
110
+ }
@@ -0,0 +1,96 @@
1
+ .rowBarCode {
2
+ height: auto;
3
+ max-height: 75px;
4
+ line-height: 25px;
5
+ overflow-y: auto;
6
+ }
7
+
8
+ .associated-search-input {
9
+ width: 100%;
10
+ margin-bottom: 8px;
11
+ }
12
+
13
+ .associated-divider {
14
+ margin-bottom: 8px;
15
+ margin-top: 8px;
16
+ }
17
+
18
+ .search-approval-list-box {
19
+ width: 100%;
20
+ display: flex;
21
+ flex-direction: column;
22
+ justify-content: flex-start;
23
+ align-items: flex-start;
24
+
25
+ .search-approval-item {
26
+ width: 100%;
27
+
28
+ display: flex;
29
+ flex-direction: row;
30
+ justify-content: space-between;
31
+ align-items: flex-start;
32
+ min-height: 120px;
33
+ height: auto;
34
+ padding: 8px;
35
+ border: 2px solid var(--custom-theme-fill-7);
36
+ border-bottom: 2px solid var(--custom-theme-border-4);
37
+ border-radius: 8px;
38
+ line-height: 14px;
39
+ cursor: pointer;
40
+
41
+ .search-approval-left {
42
+ display: flex;
43
+ flex-direction: row;
44
+ justify-content: flex-start;
45
+ align-items: flex-start;
46
+
47
+ img {
48
+ width: 32px;
49
+ height: 32px;
50
+ border-radius: 8px;
51
+ margin-top: 6px;
52
+ margin-right: 12px;
53
+ }
54
+ }
55
+
56
+ .search-approval-item-content {
57
+ .search-approval-item-form-name {
58
+ font-size: 14px;
59
+ margin-top: 8px;
60
+ color: var(--custom-theme-text-3);
61
+ }
62
+
63
+ .search-approval-item-man {
64
+ color: var(--custom-theme-text-3);
65
+ font-size: 12px;
66
+ margin-top: 8px;
67
+ }
68
+
69
+ .search-approval-item-create-time {
70
+ color: var(--custom-theme-text-3);
71
+ font-size: 12px;
72
+ margin-top: 6px;
73
+ }
74
+
75
+ .search-approval-item-end-time {
76
+ color: var(--custom-theme-text-3);
77
+ font-size: 12px;
78
+ margin-top: 6px;
79
+ }
80
+
81
+ }
82
+
83
+ .search-approval-right {
84
+ min-width: 80px;
85
+ }
86
+ }
87
+ }
88
+
89
+ .scroller-area-box {
90
+ max-height: 480px;
91
+ overflow: auto;
92
+ }
93
+
94
+ .search-approval-item:hover {
95
+ border: 2px solid #409EFF;
96
+ }
@@ -0,0 +1,48 @@
1
+ .associated-area-box {
2
+ width: 100%;
3
+ height: auto;
4
+
5
+ .associated-area {
6
+
7
+
8
+ .associated-order {
9
+ padding-top: 8px;
10
+ width: 100%;
11
+ display: flex;
12
+ flex-direction: column;
13
+ justify-content: flex-start;
14
+ align-items: flex-start;
15
+
16
+ .associated-order-item {
17
+ width: 100%;
18
+ margin-bottom: 8px;
19
+ height: 42px;
20
+ padding: 0 10px;
21
+ background-color: var(--el-fill-color);
22
+ color: #606266;
23
+ display: flex;
24
+ flex-direction: row;
25
+ justify-content: space-between;
26
+ align-items: center;
27
+ height: auto;
28
+ flex-grow: 1;
29
+ flex-shrink: 1;
30
+ border-radius: 7px;
31
+
32
+ .associated-order-item-right {
33
+ min-width: 80px;
34
+ cursor: default;
35
+ display: flex;
36
+ flex-direction: row;
37
+ justify-content: flex-end;
38
+ }
39
+
40
+ }
41
+ }
42
+
43
+ }
44
+ }
45
+
46
+ .no-associate {
47
+ font-size: var(--font-size-body);
48
+ }
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div class="flexRowStart">
3
+ <span>签字:</span>
4
+ <el-image style="width: 133px; height: 100px; background: #FFFFFF;" :src="src" :preview-src-list="previewSrcList" :fit="fit" />
5
+ </div>
6
+ </template>
7
+ <script lang="ts" setup>
8
+ import { reactive, ref, onMounted, shallowRef, toRefs, watch } from 'vue';
9
+ const props = defineProps({
10
+ src: {
11
+ type: String,
12
+ require: true,
13
+ },
14
+ previewSrcList: {
15
+ type: [String as any],
16
+ default: "cover",
17
+ require: true,
18
+ },
19
+ fit: {
20
+ type: String,
21
+ default: "contain",
22
+ require: false,
23
+ },
24
+ });
25
+ const { src, previewSrcList, fit } = toRefs(props)
26
+ </script>
27
+ <style scoped lang="scss"></style>