iconInfo-detail.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <style scoped>
  2. .user-panel {
  3. margin: 10px auto;
  4. }
  5. </style>
  6. <template>
  7. <el-dialog
  8. :visible.sync="showDialog"
  9. :title="title"
  10. :modal-append-to-body="false"
  11. style="text-align: left"
  12. width="80%"
  13. @close="closeDialog"
  14. >
  15. <div class="user-panel" v-loading="loading">
  16. <el-form
  17. ref="form"
  18. :model="formModel"
  19. :rules="ruleValidate"
  20. :label-width="'150px'"
  21. inline
  22. >
  23. <el-form-item label="图标名称" prop="iconName">
  24. <el-input
  25. v-model="formModel.iconName"
  26. placeholder="请输入图标名称"
  27. style="width: 300px"
  28. ></el-input>
  29. </el-form-item>
  30. <el-form-item label="图标路由" prop="iconRoute">
  31. <el-input
  32. v-model="formModel.iconRoute"
  33. placeholder="请输入图标路由"
  34. style="width: 300px"
  35. ></el-input>
  36. </el-form-item>
  37. <el-form-item label="图标的子页面路由" prop="iconSubRoute">
  38. <el-input
  39. v-model="formModel.iconSubRoute"
  40. placeholder="请输入图标的子页面路由"
  41. style="width: 300px"
  42. ></el-input>
  43. </el-form-item>
  44. <el-form-item label="图标url" prop="iconUrl">
  45. <el-input
  46. v-model="formModel.iconUrl"
  47. placeholder="请输入图标url"
  48. style="width: 300px"
  49. ></el-input>
  50. </el-form-item>
  51. <el-form-item label="参数" prop="iconParam">
  52. <el-input
  53. v-model="formModel.iconParam"
  54. placeholder="请输入参数"
  55. style="width: 300px"
  56. ></el-input>
  57. </el-form-item>
  58. <el-form-item label="图标图片" prop="iconPic">
  59. <el-input
  60. v-model="formModel.iconPic"
  61. placeholder="请输入图标图片"
  62. style="width: 300px"
  63. ></el-input>
  64. </el-form-item>
  65. <el-form-item label="通用功能展示的图片" prop="iconCommonPic">
  66. <el-input
  67. v-model="formModel.iconCommonPic"
  68. placeholder="请输入通用功能展示的图片"
  69. style="width: 300px"
  70. ></el-input>
  71. </el-form-item>
  72. <!-- <el-form-item label="图标类型" prop="iconTypeId">
  73. <el-input
  74. v-model="formModel.iconTypeId"
  75. placeholder="请输入图标类型"
  76. style="width: 300px"
  77. ></el-input>
  78. </el-form-item> -->
  79. <el-form-item label="图标类型" prop="iconTypeId">
  80. <el-select v-model="formModel.iconTypeId" style="width:80%">
  81. <el-option v-for="(item,index) in iconTypeList"
  82. :label="item.typeName" :value="item.id" :key="index"></el-option>
  83. </el-select>
  84. </el-form-item>
  85. <el-form-item label="备注信息" prop="remark">
  86. <el-input
  87. v-model="formModel.remark"
  88. placeholder="请输入备注信息"
  89. style="width: 300px"
  90. ></el-input>
  91. </el-form-item>
  92. <el-form-item label="是否启用" prop="useEnable">
  93. <el-switch
  94. v-model="formModel.useEnable"
  95. active-color="#13ce66"
  96. active-text="是"
  97. inactive-color="#ff4949"
  98. inactive-text="否"
  99. ></el-switch>
  100. </el-form-item>
  101. </el-form>
  102. </div>
  103. <span slot="footer" class="dialog-footer">
  104. <el-button @click="closeDialog">取 消</el-button>
  105. <el-button type="primary" @click="handleSubmit" :loading="submitting"
  106. >确 定</el-button
  107. >
  108. </span>
  109. </el-dialog>
  110. </template>
  111. <script>
  112. import Constant from "@/constant";
  113. import iconInfoApi from "@/api/base/iconInfo";
  114. export default {
  115. props: ["businessKey", "title"],
  116. data() {
  117. return {
  118. iconTypeList: [],
  119. formModel: {},
  120. ruleValidate: {
  121. id: [{ required: true, message: "不能为空", trigger: "blur" }],
  122. iconName: [
  123. { required: true, message: "图标名称不能为空", trigger: "blur" },
  124. ],
  125. iconRoute: [
  126. { required: true, message: "图标路由不能为空", trigger: "blur" },
  127. ],
  128. iconSubRoute: [
  129. {
  130. required: true,
  131. message: "图标的子页面路由不能为空",
  132. trigger: "blur",
  133. },
  134. ],
  135. iconUrl: [
  136. { required: true, message: "图标url不能为空", trigger: "blur" },
  137. ],
  138. iconParam: [
  139. { required: true, message: "参数不能为空", trigger: "blur" },
  140. ],
  141. useEnable: [
  142. { required: true, message: "是否启用不能为空", trigger: "blur" },
  143. ],
  144. iconPic: [
  145. { required: true, message: "图标图片不能为空", trigger: "blur" },
  146. ],
  147. iconCommonPic: [
  148. {
  149. required: true,
  150. message: "通用功能展示的图片不能为空",
  151. trigger: "blur",
  152. },
  153. ],
  154. iconTypeId: [
  155. { required: true, message: "图标类型id不能为空", trigger: "blur" },
  156. ],
  157. delFlag: [
  158. { required: true, message: "是否删除不能为空", trigger: "blur" },
  159. ],
  160. createBy: [
  161. { required: true, message: "创建人不能为空", trigger: "blur" },
  162. ],
  163. createTime: [
  164. { required: true, message: "创建时间不能为空", trigger: "blur" },
  165. ],
  166. updateBy: [
  167. { required: true, message: "更新人不能为空", trigger: "blur" },
  168. ],
  169. updateTime: [
  170. { required: true, message: "更新时间不能为空", trigger: "blur" },
  171. ],
  172. remark: [
  173. { required: true, message: "备注信息不能为空", trigger: "blur" },
  174. ],
  175. },
  176. showDialog: true,
  177. loading: false,
  178. submitting: false,
  179. };
  180. },
  181. created() {
  182. // this.loadTree();
  183. iconInfoApi.getIconTypeList().then(response => {
  184. var jsonData = response.data;
  185. this.iconTypeList = jsonData.data;
  186. });
  187. },
  188. methods: {
  189. closeDialog() {
  190. this.$emit("close", false);
  191. },
  192. handleSubmit() {
  193. var self = this;
  194. this.$refs["form"].validate((valid) => {
  195. if (valid) {
  196. (function () {
  197. var id = self.formModel.id;
  198. if (id == null || id.length == 0) {
  199. return iconInfoApi.add(self.formModel);
  200. } else {
  201. return iconInfoApi.update(self.formModel);
  202. }
  203. })().then(function (response) {
  204. var jsonData = response.data;
  205. if (jsonData.result) {
  206. self.$message({
  207. message: "保存成功!",
  208. type: "success",
  209. });
  210. self.$emit("close", true);
  211. } else {
  212. self.$message({
  213. message: jsonData.message + "",
  214. type: "warning",
  215. });
  216. self.$emit("close", false);
  217. }
  218. });
  219. }
  220. });
  221. },
  222. },
  223. mounted: function () {
  224. var self = this;
  225. (function () {
  226. if (self.businessKey.length == 0) {
  227. return iconInfoApi.create();
  228. } else {
  229. return iconInfoApi.edit(self.businessKey);
  230. }
  231. })()
  232. .then((response) => {
  233. var jsonData = response.data;
  234. self.loading = false;
  235. if (jsonData.result) {
  236. self.formModel = jsonData.data;
  237. } else {
  238. self.$message.error(jsonData.message + "");
  239. }
  240. })
  241. .catch((error) => {
  242. self.$message.error(error + "");
  243. });
  244. },
  245. };
  246. </script>