index.vue 4.7 KB

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