basic.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <template>
  2. <el-form :model="state.tableData.param" label-position="top" ref="queryRef" inline label-width="100px">
  3. <div class="form-inner-wrap">
  4. <div class="left-wrap">
  5. <el-form-item label="系统名称" prop="keyWord">
  6. <el-input v-model="state.info.name" placeholder="请输入系统名称" clearable />
  7. </el-form-item>
  8. <el-form-item label="系统版权" prop="keyWord">
  9. <el-input v-model="state.info.copyright" placeholder="请输入系统版权" clearable />
  10. </el-form-item>
  11. <el-row>
  12. <el-col :span="12">
  13. <el-form-item label="系统LOGO" prop="keyWord">
  14. <uploadVue accept=".jpg,.png,.jpeg,.gif,.svg" :name="'logo'" @set-img="setImg">
  15. <el-image style="width: 100%;" :src="state.info.logo" />
  16. <!-- <div class="tips">点击上方照片,即可更改头像</div> -->
  17. </uploadVue>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="12">
  21. <el-form-item label="系统LOGO(小图标)" prop="keyWord">
  22. <uploadVue accept=".jpg,.png,.jpeg,.gif,.svg" :name="'mini'" @set-img="setImg">
  23. <el-image style="width: 100%;" :src="state.info.mini" />
  24. <!-- <div class="tips">点击上方照片,即可更改头像</div> -->
  25. </uploadVue>
  26. </el-form-item>
  27. </el-col>
  28. </el-row>
  29. <el-form-item>
  30. <el-button v-auth="'save'" type="primary" class="ml10" @click="setDetails">保存</el-button>
  31. </el-form-item>
  32. </div>
  33. <div class="right-wrap">
  34. <el-form-item label="登录展示图" prop="keyWord">
  35. <uploadVue accept=".jpg,.png,.jpeg,.gif,.svg" :name="'pic'" @set-img="setImg">
  36. <el-image style="width: 100%;" :src="state.info.pic" fit="contain" />
  37. </uploadVue>
  38. </el-form-item>
  39. </div>
  40. </div>
  41. </el-form>
  42. </template>
  43. <script lang="ts" setup>
  44. import { reactive, onMounted, ref } from 'vue';
  45. import { ElMessage } from 'element-plus';
  46. import api from '/@/api/system';
  47. import uploadVue from '/@/components/upload-wrapper/index.vue';
  48. const queryRef = ref();
  49. const state = reactive({
  50. ids: [],
  51. info: {
  52. name: "",
  53. copyright: "",
  54. accesskey: "",
  55. secretkey: "",
  56. logo: "",
  57. mini: "",
  58. pic: ""
  59. },
  60. data: [],
  61. tableData: {
  62. data: [],
  63. loading: false,
  64. param: {
  65. pageNum: 1,
  66. PageSize: 10,
  67. status: -1,
  68. keyWord: ""
  69. },
  70. total: 0
  71. },
  72. });
  73. // 初始化表格数据
  74. const initBasicConfigInfo = () => {
  75. queryBasicConfigInfo();
  76. };
  77. const queryBasicConfigInfo = () => {
  78. state.tableData.loading = true
  79. api.basicConfig.getDetails({ types: 0 }).then((res: any) => {
  80. state.data = res.data;
  81. res.data.forEach((element: any) => {
  82. if (element.configName == '系统名称') {
  83. state.info.name = element.configValue
  84. } else if (element.configName == '系统版权') {
  85. state.info.copyright = element.configValue
  86. } else if (element.configName == '系统LOGO') {
  87. state.info.logo = element.configValue
  88. } else if (element.configName == '系统LOGO(小图标)') {
  89. state.info.mini = element.configValue
  90. } else if (element.configName == '登录展示图') {
  91. state.info.pic = element.configValue
  92. }
  93. });
  94. });
  95. };
  96. const setDetails = () => {
  97. if (!state.info.name) {
  98. ElMessage.error('请填写系统名称');
  99. return;
  100. }
  101. if (!state.info.copyright) {
  102. ElMessage.error('请填写系统版权');
  103. return;
  104. }
  105. if (!state.info.logo) {
  106. ElMessage.error('请上传系统LOGO');
  107. return;
  108. }
  109. if (!state.info.mini) {
  110. ElMessage.error('请上传LOGO(小图标)');
  111. return;
  112. } if (!state.info.pic) {
  113. ElMessage.error('请上传登录展示图');
  114. return;
  115. }
  116. state.data.forEach((element: object) => {
  117. if (element.configName == '系统名称') {
  118. element.configValue = state.info.name
  119. } else if (element.configName == '系统版权') {
  120. element.configValue = state.info.copyright
  121. } else if (element.configName == '系统LOGO') {
  122. element.configValue = state.info.logo
  123. } else if (element.configName == '系统LOGO(小图标)') {
  124. element.configValue = state.info.mini
  125. } else if (element.configName == '登录展示图') {
  126. element.configValue = state.info.pic
  127. }
  128. })
  129. api.basicConfig.setDetails({ ConfigInfo: state.data }).then(() => {
  130. ElMessage.success('设置成功');
  131. });
  132. };
  133. const setImg = (img: string, name: string) => {
  134. state.info[name] = img;
  135. }
  136. // 页面加载时
  137. onMounted(() => {
  138. initBasicConfigInfo();
  139. });
  140. </script>
  141. <style scoped lang="scss">
  142. :deep(.el-form) {
  143. width: 100%;
  144. }
  145. :deep(.form-inner-wrap) {
  146. width: 100%;
  147. display: flex;
  148. justify-content: space-between;
  149. .left-wrap,
  150. .right-wrap {
  151. width: 100%;
  152. }
  153. }
  154. </style>