parameter.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <template>
  2. <div class="hc-page-layout-box">
  3. <div class="hc-page-content-box">
  4. <HcCard>
  5. <template #header>
  6. <div class="hc-card-header-table-title">参数设置</div>
  7. </template>
  8. <template #extra>
  9. <HcTooltip keys="file_collection_btn_upload_scanned_files">
  10. <el-button type="primary" hc-btn @click="uploadModalClick">
  11. <HcIcon name="save"/>
  12. <span>保存</span>
  13. </el-button>
  14. </HcTooltip>
  15. </template>
  16. <div class="hc-page-content-box-list">
  17. <div class="hc-page-content-box-list-title">归档目录树选择范围</div>
  18. <el-alert title="选择对应的归档范围,目录树内容也会随之改变" type="error" :closable="false" />
  19. <div class="hc-card-header-tree-checkbox">
  20. <el-checkbox-group v-model="projectTypeList">
  21. <el-checkbox :label="1">公路工程</el-checkbox>
  22. <el-checkbox :label="2">水里水电工程</el-checkbox>
  23. </el-checkbox-group>
  24. </div>
  25. </div>
  26. <div class="hc-page-content-box-list">
  27. <div class="hc-page-content-box-list-title">案卷四要素设置</div>
  28. <el-alert title="勾选是否要生成封面、脊背、卷内目录、备考表" type="error" :closable="false" />
  29. <div class="hc-card-header-tree-checkbox">
  30. <el-checkbox-group v-model="factorTypeList">
  31. <el-checkbox label="1">案卷封面</el-checkbox>
  32. <el-checkbox label="2">卷内目录</el-checkbox>
  33. <el-checkbox label="3">脊背</el-checkbox>
  34. <el-checkbox label="4">备考表</el-checkbox>
  35. </el-checkbox-group>
  36. </div>
  37. </div>
  38. </HcCard>
  39. </div>
  40. </div>
  41. </template>
  42. <script setup>
  43. import {ref, watch, onMounted} from "vue";
  44. import {useAppStore} from "~src/store";
  45. import archiveConfigApi from "~api/archiveConfig/archiveConfig.js";
  46. //变量
  47. const useAppState = useAppStore()
  48. const projectId = ref(useAppState.getProjectId);
  49. const contractId = ref(useAppState.getContractId);
  50. const projectInfo = ref(useAppState.getProjectInfo);
  51. const isCollapse = ref(useAppState.getCollapse);
  52. const projectTypeList = ref([])
  53. const factorTypeList = ref([])
  54. const config = ref({});
  55. //监听
  56. watch(() => [
  57. useAppState.getCollapse
  58. ], ([Collapse]) => {
  59. isCollapse.value = Collapse
  60. })
  61. //渲染完成
  62. onMounted(() => {
  63. getConfigByProjectId();
  64. })
  65. //搜索表单
  66. const searchForm = ref({
  67. contractId: null, type: null, approval: null, betweenTime: null,
  68. current: 1, size: 20, total: 0
  69. })
  70. //树相关的变量
  71. const primaryKeyId = ref('')
  72. //日期时间被选择
  73. const betweenTime = ref(null)
  74. const betweenTimeUpdate = ({arr,query}) => {
  75. betweenTime.value = arr
  76. searchForm.value.betweenTime = query
  77. }
  78. //搜索
  79. const searchClick = () => {
  80. searchForm.value.current = 1;
  81. getTableData()
  82. }
  83. //分页被点击
  84. const pageChange = ({current, size}) => {
  85. searchForm.value.current = current
  86. searchForm.value.size = size
  87. getTableData()
  88. }
  89. //表格数据
  90. const tableRef = ref(null)
  91. const tableColumn = ref([
  92. {key:'key1', name: '报告编号'},
  93. {key:'key2', name: '工程部位'},
  94. {key:'key3', name: '试验日期'},
  95. {key:'key4', name: '样品编号'},
  96. {key:'key5', name: '生产厂家'},
  97. {key:'key6', name: '规格型号'},
  98. {key:'key7', name: '代表数量'},
  99. {key:'key8', name: '密度(开kg/m3)'},
  100. {key:'key9', name: '比表面积(m2/kg)'},
  101. {key:'key10', name: '细度(%)'},
  102. {key:'key11', name: '标准稠度用水量(%)'},
  103. {key:'key12', name: '初凝结时间(min)'},
  104. {key:'key13', name: '终凝结时间(min)'},
  105. {key:'key14', name: '安定性霍氏夹法'},
  106. {key:'key15', name: '抗折3D胶砂强度(Mpa)'},
  107. {key:'key16', name: '抗折28D胶砂强度(Mpa)'},
  108. {key:'key17', name: '抗压3D胶砂强度(Mpa)'},
  109. {key:'key18', name: '抗压28D胶砂强度(Mpa)'},
  110. {key:'key19', name: '试验结果'},
  111. {key:'key20', name: '检测类型'},
  112. {key:'key21', name: '检测人'},
  113. ])
  114. const tableData = ref([])
  115. //获取数据
  116. const tableLoading = ref(false)
  117. const getTableData = async () => {
  118. }
  119. //多选
  120. const tableCheckedKeys = ref([]);
  121. const tableSelection = (rows) => {
  122. tableCheckedKeys.value = rows
  123. }
  124. //删除
  125. const delModalClick = () => {
  126. }
  127. const getConfigByProjectId = async ()=>{
  128. const {code,res} = await archiveConfigApi.getConfigByProjectId({
  129. projectId:projectId.value
  130. })
  131. //console.log(res);
  132. if (code == 200) {
  133. // 如果projectType 为 1 则选中 公路工程,为 2,则选中水里水电工程,为3,则两个都选中
  134. // factorType信息为字符串,格式为"1,2,3,4",包含 1,则选中案卷封面,包含2则选中卷内目录,包含3则选中脊背,包含4则选中备考表
  135. config.value = res.data;
  136. if(config.value.projectType == 1 || config.value.projectType == 2){
  137. projectTypeList.value = [config.value.projectType]
  138. }else if(config.value.projectType == 3){
  139. projectTypeList.value = [1,2]
  140. }else if(config.value.projectType == 0){
  141. projectTypeList.value = []
  142. }
  143. factorTypeList.value = config.value.factorType.split(',');
  144. }
  145. }
  146. const uploadModalClick = async () => {
  147. let factorType = '';
  148. let projectType = 0;
  149. if(projectTypeList.value.length == 1){
  150. projectType = projectTypeList.value[0]
  151. }else if(projectTypeList.value.length > 1){
  152. projectType = 3
  153. }
  154. factorType = factorTypeList.value.join(',');
  155. const {code,res} = await archiveConfigApi.updateConfig({
  156. id:config.value.id,
  157. projectId:projectId.value,
  158. factorType:factorType,
  159. projectType:projectType,
  160. })
  161. if (code == 200) {
  162. window.$message?.success('修改成功')
  163. }
  164. }
  165. //左右拖动,改变树形结构宽度
  166. const leftWidth = ref(382);
  167. const onmousedown = () => {
  168. const leftNum = isCollapse.value ? 142 : 272
  169. document.onmousemove = (ve) => {
  170. let diffVal = ve.clientX - leftNum;
  171. if(diffVal >= 310 && diffVal <= 900) {
  172. leftWidth.value = diffVal;
  173. }
  174. }
  175. document.onmouseup = () => {
  176. document.onmousemove = null;
  177. document.onmouseup = null;
  178. }
  179. }
  180. //保存
  181. const saveClick = () => {
  182. console.log('保存');
  183. }
  184. </script>
  185. <style lang="scss" scoped>
  186. @import '~style/custody/scoped/backup.scss';
  187. .hc-card-header-table-title{
  188. font-size: 1.125rem;
  189. line-height: 1.75rem;
  190. }
  191. .hc-card-header-tree-checkbox{
  192. margin-top: 30px;
  193. text-align: center;
  194. }
  195. .hc-page-content-box-list{
  196. width: 100%;
  197. height: 300px;
  198. border:rgb(187, 187, 187) solid 1px;
  199. margin-bottom: 30px;
  200. .hc-page-content-box-list-title{
  201. margin-top: 30px;
  202. padding-left: 30px;
  203. margin-bottom: 30px;
  204. font-size: 20px;
  205. color: rgba(52, 54, 57, 0.5);
  206. }
  207. }
  208. </style>