sign-admin.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <template>
  2. <div class="hc-layout-box">
  3. <HcCard :scrollbar="false" actionSize="lg">
  4. <template #header>
  5. <div class="w-32">
  6. <el-select v-model="searchForm.tasks" block clearable placeholder="电签任务人" size="large">
  7. <el-option v-for="item in tasksData" :label="item.dictValue" :value="item.dictKey"/>
  8. </el-select>
  9. </div>
  10. <div class="w-32 ml-3">
  11. <el-select v-model="searchForm.contract" block clearable placeholder="合同段" size="large"
  12. @change="ContractIdChange">
  13. <el-option v-for="item in contractList" :label="item.name" :value="item.id"/>
  14. </el-select>
  15. </div>
  16. <div class="w-32 ml-3">
  17. <el-select v-model="searchForm.status" block clearable placeholder="电签状态" size="large">
  18. <el-option v-for="item in statusData" :label="item.dictValue" :value="item.dictKey"/>
  19. </el-select>
  20. </div>
  21. <div class="w-64 ml-3">
  22. <HcDatePicker :dates="betweenTime" clearable size="large" @change="betweenTimeUpdate"/>
  23. </div>
  24. <div class="w-56 ml-3">
  25. <el-input v-model="searchForm.queryValue" block clearable placeholder="请输入名称关键词检索"
  26. size="large" @keyup="keyUpEvent"/>
  27. </div>
  28. <div class="ml-2">
  29. <el-button size="large" type="primary" @click="searchClick">
  30. <HcIcon name="search-2"/>
  31. <span>搜索</span>
  32. </el-button>
  33. </div>
  34. </template>
  35. <template #extra>
  36. <HcTooltip keys="tasks_sign_key_renewal">
  37. <el-button hc-btn type="primary">
  38. <HcIcon name="restart"/>
  39. <span>一键重签</span>
  40. </el-button>
  41. </HcTooltip>
  42. </template>
  43. <HcTable ref="tableListRef" :column="tableListColumn" :datas="tableData" :loading="tableLoading" isCheck
  44. @selection-change="tableSelectionChange"/>
  45. <template #action>
  46. <HcPages :pages="searchForm" @change="pageChange"/>
  47. </template>
  48. </HcCard>
  49. </div>
  50. </template>
  51. <script setup>
  52. import {ref, onMounted} from "vue";
  53. import {useAppStore} from "~src/store";
  54. import {getObjValue, getArrValue} from "js-fast-way"
  55. //变量
  56. const useAppState = useAppStore()
  57. const projectId = ref(useAppState.getProjectId);
  58. const contractId = ref(useAppState.getContractId);
  59. const projectInfo = ref(useAppState.getProjectInfo);
  60. //渲染完成
  61. onMounted(() => {
  62. const project = getObjValue(projectInfo.value)
  63. contractList.value = getArrValue(project['contractInfoList'])
  64. getTableData()
  65. })
  66. const tasksData = ref([])
  67. const statusData = ref([])
  68. //合同段
  69. const contractList = ref([])
  70. const ContractIdChange = () => {
  71. }
  72. //日期时间被选择
  73. const betweenTime = ref(null)
  74. const betweenTimeUpdate = ({val, arr}) => {
  75. betweenTime.value = arr
  76. searchForm.value.startTime = val['start']
  77. searchForm.value.endTime = val['end']
  78. }
  79. //搜索表单
  80. const searchForm = ref({
  81. queryValue: null, tasks: null, contract: null, status: null, startTime: null, endTime: null,
  82. current: 1, size: 20, total: 0
  83. })
  84. //回车搜索
  85. const keyUpEvent = (e) => {
  86. if (e.key === "Enter") {
  87. searchForm.value.current = 1;
  88. getTableData()
  89. }
  90. }
  91. //重新搜索数据
  92. const searchClick = () => {
  93. searchForm.value.current = 1
  94. getTableData()
  95. }
  96. //分页被点击
  97. const pageChange = ({current, size}) => {
  98. searchForm.value.current = current
  99. searchForm.value.size = size
  100. getTableData()
  101. }
  102. //获取数据
  103. const tableLoading = ref(false)
  104. const tableListData = ref([])
  105. const getTableData = async () => {
  106. }
  107. //多选
  108. const tableListRef = ref(null)
  109. const tableCheckedKeys = ref([]);
  110. const tableSelectionChange = (rows) => {
  111. tableCheckedKeys.value = rows.filter((item) => {
  112. return (item ?? '') !== '';
  113. })
  114. }
  115. const tableListColumn = ref([
  116. {key: 'name', name: '流程名称'},
  117. {key: 'date', name: '任务状态'},
  118. {key: 'status', name: '电签状态'},
  119. {key: 'batch', name: '审批时间'},
  120. {key: 'person', name: '电签失败原因'},
  121. {key: 'tesk', name: '上报人'},
  122. {key: 'tesk1', name: '电签任务人'}
  123. ])
  124. const tableData = ref([
  125. {
  126. num: 1,
  127. name: "test1",
  128. date: "已审批-电签失败",
  129. status: "电签失败",
  130. batch: "2022-05-16 13:35",
  131. person: "xxxxx原因",
  132. tesk: "李四",
  133. tesk1: '张三'
  134. },
  135. {
  136. num: 2,
  137. name: "test2",
  138. date: "已审批-电签中",
  139. status: "电签中",
  140. batch: "2022-05-16 13:35",
  141. person: "xxxxx原因",
  142. tesk: "李四",
  143. tesk1: '张三'
  144. },
  145. {
  146. num: 3,
  147. name: "test3",
  148. date: "已审批完成",
  149. status: "电签完成",
  150. batch: "2022-05-16 13:35",
  151. person: "xxxxx原因",
  152. tesk: "李四",
  153. tesk1: '张三'
  154. },
  155. {
  156. num: 4,
  157. name: "test4",
  158. date: "已审批-电签中",
  159. status: "等待电签",
  160. batch: "2022-05-16 13:35",
  161. person: "xxxxx原因",
  162. tesk: "李四",
  163. tesk1: '张三'
  164. },
  165. {
  166. num: 5,
  167. name: "test5",
  168. date: "xxxxxxxxxx",
  169. status: "xxxx",
  170. batch: "2022-05-16 13:35",
  171. person: "xxxxx原因",
  172. tesk: "李四",
  173. tesk1: '张三'
  174. },
  175. {
  176. num: 6,
  177. name: "test6",
  178. date: "xxxxxxxxxx",
  179. status: "xxxxxx",
  180. batch: "2022-05-16 13:35",
  181. person: "xxxxx原因",
  182. tesk: "李四",
  183. tesk1: '张三'
  184. },
  185. ]);
  186. </script>
  187. <style lang="scss" scoped>
  188. .hc-layout-box {
  189. position: relative;
  190. height: 100%;
  191. }
  192. </style>