commission.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <template>
  2. <hc-body split :project-nmae="projectInfo?.projectName">
  3. <template #tree>
  4. <TestTree
  5. :auto-expand-keys="treeAutoExpandKeys" :project-id="projectId" :tenant-id="userInfo?.tenant_id"
  6. :wbs-temp-id="projectInfo?.referenceWbsTemplateIdTrial" :wbs-type="2" @node-tap="wbsElTreeClick"
  7. />
  8. </template>
  9. <hc-new-card w-to="1919">
  10. <template #headerToSearch>
  11. <div class="w-50">
  12. <el-select v-model="searchForm.contractId" placeholder="选择合同段" filterable clearable block>
  13. <el-option label="测试1" value="1" />
  14. <el-option label="测试2" value="2" />
  15. </el-select>
  16. </div>
  17. <div class="ml-2 w-40">
  18. <el-select v-model="searchForm.contractId" placeholder="委托单状态" filterable clearable block>
  19. <el-option label="测试1" value="1" />
  20. <el-option label="测试2" value="2" />
  21. </el-select>
  22. </div>
  23. <div class="ml-2 w-250px">
  24. <hc-search-input v-model="searchForm.queryValue" @search="searchClick" />
  25. </div>
  26. </template>
  27. <template #extraToHeader>
  28. <el-button hc-btn type="primary" @click="addFormData">
  29. <hc-icon name="add-circle" />
  30. <span>新增</span>
  31. </el-button>
  32. <el-button v-del-com:[delModalClick] :disabled="tableCheckedKeys.length <= 0" hc-btn type="danger">
  33. <hc-icon name="delete-bin-2" />
  34. <span>删除</span>
  35. </el-button>
  36. <el-button :disabled="tableCheckedKeys.length <= 0" hc-btn color="#567722">
  37. <hc-icon name="printer" />
  38. <span>批量打印</span>
  39. </el-button>
  40. <el-button :disabled="tableCheckedKeys.length <= 0" class="text-white" hc-btn color="#FF976A">
  41. <HcIcon name="send-plane-2" />
  42. <span>上报</span>
  43. </el-button>
  44. <el-button hc-btn color="#567722">
  45. <hc-icon name="printer" />
  46. <span>打印空表</span>
  47. </el-button>
  48. </template>
  49. <hc-table
  50. :column="tableColumn" :datas="tableData" :loading="tableLoading" is-check
  51. :index-style="{ width: 60 }" :check-style="{ width: 29 }" @selection-change="tableSelection"
  52. >
  53. <template #key5="{ row }">
  54. <el-tag v-if="row.key5 === 1" type="info" effect="dark">未上报</el-tag>
  55. <el-tag v-if="row.key5 === 2" type="warning" effect="dark">已上报-待审批</el-tag>
  56. <el-tag v-if="row.key5 === 3" type="primary" effect="dark">待试验</el-tag>
  57. <el-tag v-if="row.key5 === 4" type="success" effect="dark">委托完成</el-tag>
  58. </template>
  59. <template #action="{ row }">
  60. <el-link v-if="row.key5 === 1" type="primary" @click="rowEdit(row)">修改</el-link>
  61. <el-link v-else type="success" @click="rowView(row)">查看</el-link>
  62. <el-link type="danger" :disabled="row.key5 !== 1" @click="rowReports(row)">创建报告</el-link>
  63. </template>
  64. </hc-table>
  65. <template #action>
  66. <hc-pages :pages="searchForm" @change="pageChange" />
  67. </template>
  68. </hc-new-card>
  69. <!-- 新增委托 -->
  70. <hc-new-dialog v-model="delegateModal" is-footer-center is-table title="新增委托" widths="60rem" @close="delegateModalClose">
  71. html表单
  72. <template #footer>
  73. <el-button @click="delegateModalClose">取消</el-button>
  74. <el-button hc-btn type="warning" @click="linkSamplingShow">关联取样材料</el-button>
  75. <el-button hc-btn type="primary" @click="creatingDelegate">创建</el-button>
  76. </template>
  77. </hc-new-dialog>
  78. <!-- 关联取样材料 -->
  79. <hc-new-dialog v-model="linkSamplingModal" is-footer-center is-table title="关联取样材料" widths="80%" @close="linkSamplingClose">
  80. <SamplingPage />
  81. <template #footer>
  82. <el-button @click="linkSamplingClose">取消</el-button>
  83. <el-button hc-btn type="primary" @click="linkSamplingClick">确定</el-button>
  84. </template>
  85. </hc-new-dialog>
  86. </hc-body>
  87. </template>
  88. <script setup>
  89. import { onMounted, ref } from 'vue'
  90. import { useAppStore } from '~src/store'
  91. import { getStoreValue, setStoreValue } from '~src/utils/storage'
  92. import TestTree from '~src/views/tentative/material/components/TestTree.vue'
  93. import SamplingPage from './commission/sampling.vue'
  94. //变量
  95. const useAppState = useAppStore()
  96. const userInfo = ref(useAppState.getUserInfo)
  97. const projectId = ref(useAppState.getProjectId)
  98. const contractId = ref(useAppState.getContractId)
  99. const projectInfo = ref(useAppState.getProjectInfo)
  100. //渲染完成
  101. onMounted(() => {
  102. })
  103. //搜索表单
  104. const searchForm = ref({ current: 1, size: 20, total: 0 })
  105. //自动展开缓存
  106. const treeAutoExpandKeys = ref(getStoreValue('testTreeExpandKeys') || [])
  107. //树被点击
  108. const nodeDataInfo = ref({})
  109. const wbsElTreeClick = ({ data, keys }) => {
  110. nodeDataInfo.value = data
  111. //缓存自动展开
  112. treeAutoExpandKeys.value = keys
  113. setStoreValue('testTreeExpandKeys', keys)
  114. }
  115. //搜索
  116. const searchClick = () => {
  117. searchForm.value.current = 1
  118. getTableData()
  119. }
  120. //分页被点击
  121. const pageChange = ({ current, size }) => {
  122. searchForm.value.current = current
  123. searchForm.value.size = size
  124. getTableData()
  125. }
  126. //表格数据
  127. const tableData = ref([
  128. { key5:1 }, { key5:2 }, { key5:3 }, { key5:4 },
  129. ])
  130. const tableColumn = ref([
  131. { key: 'key1', name: '委托单位' },
  132. { key: 'key2', name: '委托单编号' },
  133. { key: 'key3', name: '委托单名称' },
  134. { key: 'key4', name: '关联材料名称' },
  135. { key: 'key5', name: '委托单状态', width: 120, align: 'center' },
  136. { key: 'action', name: '操作', width: 120, align: 'center' },
  137. ])
  138. //获取数据
  139. const tableLoading = ref(false)
  140. const getTableData = async () => {
  141. }
  142. //多选
  143. const tableCheckedKeys = ref([])
  144. const tableSelection = (rows) => {
  145. tableCheckedKeys.value = rows
  146. }
  147. //删除
  148. const delModalClick = async (_, resolve) => {
  149. resolve()
  150. }
  151. //新增
  152. const delegateModal = ref(false)
  153. const addFormData = () => {
  154. delegateModal.value = true
  155. }
  156. //修改
  157. const rowEdit = (row) => {
  158. delegateModal.value = true
  159. }
  160. //创建委托
  161. const creatingDelegate = async () => {
  162. delegateModalClose()
  163. }
  164. //关闭委托
  165. const delegateModalClose = () => {
  166. delegateModal.value = false
  167. }
  168. //关联取样材料
  169. const linkSamplingModal = ref(false)
  170. const linkSamplingShow = () => {
  171. linkSamplingModal.value = true
  172. }
  173. //确认关联取样材料
  174. const linkSamplingClick = () => {
  175. linkSamplingClose()
  176. }
  177. //取消关联取样材料
  178. const linkSamplingClose = () => {
  179. linkSamplingModal.value = false
  180. }
  181. //查看
  182. const rowView = (row) => {
  183. }
  184. //创建报告
  185. const rowReports = (row) => {
  186. }
  187. </script>
  188. <style scoped lang="scss">
  189. </style>