parameter.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <template>
  2. <div class="hc-page-layout-box">
  3. <div class="hc-page-content-box">
  4. <hc-new-card>
  5. <template #header>
  6. <div class="hc-card-header-table-title">
  7. 参数设置
  8. </div>
  9. </template>
  10. <template #extra>
  11. <HcTooltip keys="file_collection_btn_upload_scanned_files">
  12. <el-button type="primary" hc-btn @click="uploadModalClick">
  13. <HcIcon name="save" />
  14. <span>保存</span>
  15. </el-button>
  16. </HcTooltip>
  17. </template>
  18. <el-scrollbar>
  19. <div class="hc-page-content-box-list">
  20. <div class="hc-page-content-box-list-title">
  21. 归档目录树选择范围
  22. </div>
  23. <el-alert title="选择对应的归档范围,目录树内容也会随之改变" type="error" :closable="false" />
  24. <div class="hc-card-header-tree-checkbox">
  25. <el-checkbox-group v-model="projectTypeList">
  26. <el-checkbox :label="1">
  27. 公路工程
  28. </el-checkbox>
  29. <el-checkbox :label="2">
  30. 水里水电工程
  31. </el-checkbox>
  32. </el-checkbox-group>
  33. </div>
  34. </div>
  35. <div class="hc-page-content-box-list">
  36. <div class="hc-page-content-box-list-title">
  37. 案卷四要素设置
  38. </div>
  39. <el-alert title="勾选是否要生成封面、脊背、卷内目录、备考表" type="error" :closable="false" />
  40. <div class="hc-card-header-tree-checkbox">
  41. <el-checkbox-group v-model="factorTypeList">
  42. <el-checkbox label="1">
  43. 案卷封面
  44. </el-checkbox>
  45. <el-checkbox label="2">
  46. 卷内目录
  47. </el-checkbox>
  48. <el-checkbox label="3">
  49. 脊背
  50. </el-checkbox>
  51. <el-checkbox label="4">
  52. 备考表
  53. </el-checkbox>
  54. <el-checkbox label="5">
  55. 生成页码
  56. </el-checkbox>
  57. </el-checkbox-group>
  58. </div>
  59. </div>
  60. <div class="hc-page-content-box-list">
  61. <div class="hc-page-content-box-list-title">
  62. 组卷流水号设置
  63. </div>
  64. <el-alert title="配置流水号生成的规则,是否设置有虚号及位数" type="error" :closable="false" />
  65. <div class="hc-card-header-tree-checkbox">
  66. <el-radio-group v-model="dirType">
  67. <el-radio :label="1">按档案主目录类别生成后缀流水号</el-radio>
  68. <el-radio :label="0">按档案目录从上至下的顺序生成流水号</el-radio>
  69. </el-radio-group>
  70. <div class="mt-4">
  71. <el-radio-group v-model="indexType">
  72. <el-radio :label="1">有虚号</el-radio>
  73. <el-radio :label="0">无虚号</el-radio>
  74. </el-radio-group>
  75. </div>
  76. <div class="mt-4">
  77. <el-input-number v-model="indexNum" :min="0" :max="10" />
  78. </div>
  79. </div>
  80. </div>
  81. </el-scrollbar>
  82. </hc-new-card>
  83. </div>
  84. </div>
  85. </template>
  86. <script setup>
  87. import { onMounted, ref, watch } from 'vue'
  88. import { useAppStore } from '~src/store'
  89. import archiveConfigApi from '~api/archiveConfig/archiveConfig.js'
  90. //变量
  91. const useAppState = useAppStore()
  92. const projectId = ref(useAppState.getProjectId)
  93. const contractId = ref(useAppState.getContractId)
  94. const projectInfo = ref(useAppState.getProjectInfo)
  95. const isCollapse = ref(useAppState.getCollapse)
  96. const projectTypeList = ref([])
  97. const factorTypeList = ref([])
  98. const config = ref({})
  99. //组卷流水号设置
  100. const dirType = ref(0)//目录类型
  101. const indexType = ref(0)//流水号类型
  102. const indexNum = ref(0)//虚位数
  103. //监听
  104. watch(() => [
  105. useAppState.getCollapse,
  106. ], ([Collapse]) => {
  107. isCollapse.value = Collapse
  108. })
  109. //渲染完成
  110. onMounted(() => {
  111. getConfigByProjectId()
  112. })
  113. //搜索表单
  114. const searchForm = ref({
  115. contractId: null, type: null, approval: null, betweenTime: null,
  116. current: 1, size: 20, total: 0,
  117. })
  118. const getConfigByProjectId = async ()=>{
  119. const { code, res } = await archiveConfigApi.getConfigByProjectId({
  120. projectId:projectId.value,
  121. })
  122. //console.log(res);
  123. if (code == 200) {
  124. // 如果projectType 为 1 则选中 公路工程,为 2,则选中水里水电工程,为3,则两个都选中
  125. // factorType信息为字符串,格式为"1,2,3,4",包含 1,则选中案卷封面,包含2则选中卷内目录,包含3则选中脊背,包含4则选中备考表
  126. config.value = res.data
  127. dirType.value = res.data['dirType'] || 0//目录类型
  128. indexType.value = res.data['indexType'] || 0//流水号类型
  129. indexNum.value = res.data['indexNum'] || 0//虚位树
  130. if (config.value.projectType == 1 || config.value.projectType == 2) {
  131. projectTypeList.value = [config.value.projectType]
  132. } else if (config.value.projectType == 3) {
  133. projectTypeList.value = [1, 2]
  134. } else if (config.value.projectType == 0) {
  135. projectTypeList.value = []
  136. }
  137. factorTypeList.value = config.value.factorType.split(',')
  138. }
  139. }
  140. const uploadModalClick = async () => {
  141. let factorType = ''
  142. let projectType = 0
  143. if (projectTypeList.value.length == 1) {
  144. projectType = projectTypeList.value[0]
  145. } else if (projectTypeList.value.length > 1) {
  146. projectType = 3
  147. }
  148. factorType = factorTypeList.value.join(',')
  149. const { code, res } = await archiveConfigApi.updateConfig({
  150. id:config.value.id,
  151. projectId:projectId.value,
  152. factorType:factorType,
  153. projectType:projectType,
  154. dirType:dirType.value,
  155. indexType:indexType.value,
  156. indexNum:indexNum.value,
  157. })
  158. if (code == 200) {
  159. window.$message?.success('修改成功')
  160. }
  161. }
  162. //左右拖动,改变树形结构宽度
  163. const leftWidth = ref(382)
  164. const onmousedown = () => {
  165. const leftNum = isCollapse.value ? 142 : 272
  166. document.onmousemove = (ve) => {
  167. let diffVal = ve.clientX - leftNum
  168. if (diffVal >= 310 && diffVal <= 900) {
  169. leftWidth.value = diffVal
  170. }
  171. }
  172. document.onmouseup = () => {
  173. document.onmousemove = null
  174. document.onmouseup = null
  175. }
  176. }
  177. //保存
  178. const saveClick = () => {
  179. console.log('保存')
  180. }
  181. </script>
  182. <style lang="scss" scoped>
  183. @import '~style/custody/scoped/backup.scss';
  184. .hc-card-header-table-title{
  185. font-size: 1.125rem;
  186. line-height: 1.75rem;
  187. }
  188. .hc-card-header-tree-checkbox{
  189. margin-top: 30px;
  190. text-align: center;
  191. }
  192. .hc-page-content-box-list{
  193. width: 100%;
  194. height: 300px;
  195. border:rgb(187, 187, 187) solid 1px;
  196. margin-bottom: 30px;
  197. .hc-page-content-box-list-title{
  198. margin-top: 30px;
  199. padding-left: 30px;
  200. margin-bottom: 30px;
  201. font-size: 20px;
  202. color: rgba(52, 54, 57, 0.5);
  203. }
  204. }
  205. </style>