index.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!--
  2. * @Author:
  3. * @Date: 2023-03-01 19:20:44
  4. * @LastEditors: Please set LastEditors
  5. * @LastEditTime: 2024-03-15 16:42:54
  6. * @Description: kxs files
  7. * @filePath:
  8. -->
  9. <script lang="ts">
  10. // 声明额外的选项
  11. export default {
  12. name: "Add"
  13. };
  14. </script>
  15. <script setup lang="ts">
  16. import { inject, ref } from "vue";
  17. import { useRenderIcon } from "@/components/ReIcon/src/hooks";
  18. import { postUserList } from "@/api/system";
  19. import { ElMessage, ElMessageBox } from "element-plus";
  20. import { http } from "@/utils/http";
  21. // 获取URLLIST
  22. import { getGroupUrl } from "@/utils/getUrl/getUrl"
  23. // 获取当前板块接口列表
  24. import Upload from "@iconify-icons/ri/upload-2-fill"
  25. import Close from "@iconify-icons/ri/close-fill"
  26. const props = defineProps<{
  27. submit: Function;
  28. addVisible: {
  29. type: Boolean;
  30. default: false;
  31. };
  32. width: {
  33. type: Number;
  34. default: 50;
  35. };
  36. }>();
  37. // 表单数据
  38. let UpdateForm = ref({
  39. RealName: "",
  40. AdminName: "",
  41. PassWord: "",
  42. RoleId: "",
  43. });
  44. // 传参选项数据
  45. const optionList = [
  46. { Id: '1', label: '推荐' },
  47. { Id: '2', label: '实物' },
  48. { Id: '3', label: '虚拟商品' },
  49. ]
  50. // 选项卡参数(默认值为列表某项的id)
  51. const activeId = ref('1')
  52. // 穿梭框数据
  53. const transferdata = ref([
  54. { key: 1, label: '1', disabled: false },
  55. { key: 2, label: '2', disabled: false },
  56. { key: 3, label: '3', disabled: false },
  57. { key: 4, label: '4', disabled: false },
  58. { key: 5, label: '5', disabled: false },
  59. { key: 6, label: '6', disabled: false },
  60. ])
  61. // 提交函数
  62. const submit = async () => {
  63. const UserUrl = await getGroupUrl(['User']);
  64. const { status, info }: any = http.request(UserUrl.User.userSearch.method, UserUrl.User.userSearch.url, UpdateForm.value);
  65. if (status === "1") {
  66. ElMessage({
  67. message: "新增成功",
  68. type: "success"
  69. });
  70. UpdateForm.value = {
  71. AdminName: "",
  72. RealName: "",
  73. RoleId: "",
  74. PassWord: "",
  75. };
  76. } else {
  77. ElMessageBox.alert(info, "提示", {
  78. confirmButtonText: "关闭",
  79. type: "warning"
  80. });
  81. };
  82. };
  83. const closeFn: any = inject('closeAddVisible');
  84. // 关闭弹窗回调函数
  85. const closeVisible = () => {
  86. UpdateForm.value = {
  87. AdminName: "",
  88. RealName: "",
  89. RoleId: "",
  90. PassWord: "",
  91. };
  92. closeFn();
  93. };
  94. </script>
  95. <template lang="pug">
  96. .main
  97. el-dialog(v-model='props.addVisible' width="50%" title="新增" @close="closeVisible()")
  98. //- 有选项卡模板
  99. el-tabs(v-model="activeId" class="demo-tabs" @tab-click="handleClick")
  100. el-tab-pane(label="选项卡一" name="1")
  101. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  102. el-form-item(label='账户名称' prop="RealName")
  103. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  104. placeholder="请输入账户名称")
  105. el-form-item(label='用户名' prop="AdminName")
  106. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  107. placeholder="请输入用户名")
  108. el-form-item(label='密码' prop="PassWord")
  109. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  110. placeholder="请输入密码")
  111. el-form-item(label="角色:", prop="RoleId")
  112. el-select(
  113. v-model="UpdateForm.RoleId",
  114. placeholder="请选择用户角色",
  115. clearable,
  116. class="!w-[230px]"
  117. )
  118. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  119. el-tab-pane(label="选项卡二" name="2")
  120. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  121. el-form-item(label='账户名称' prop="RealName")
  122. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  123. placeholder="请输入账户名称")
  124. el-form-item(label='用户名' prop="AdminName")
  125. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  126. placeholder="请输入用户名")
  127. el-form-item(label='密码' prop="PassWord")
  128. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  129. placeholder="请输入密码")
  130. el-form-item(label="角色:", prop="RoleId")
  131. el-select(
  132. v-model="UpdateForm.RoleId",
  133. placeholder="请选择用户角色",
  134. clearable,
  135. class="!w-[230px]"
  136. )
  137. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  138. //- 无选项卡模板
  139. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  140. el-form-item(label='账户名称' prop="RealName")
  141. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  142. placeholder="请输入账户名称")
  143. el-form-item(label='用户名' prop="AdminName")
  144. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  145. placeholder="请输入用户名")
  146. el-form-item(label='密码' prop="PassWord")
  147. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  148. placeholder="请输入密码")
  149. el-form-item(label="角色:", prop="RoleId")
  150. el-select(
  151. v-model="UpdateForm.RoleId",
  152. placeholder="请选择用户角色",
  153. clearable,
  154. class="!w-[230px]"
  155. )
  156. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  157. el-form-item(label='取色器' prop="PassWord")
  158. el-color-picker(v-model="UpdateForm.AdminName" show-alpha)
  159. el-form-item(label='数字输入框' prop="PassWord")
  160. el-input-number(v-model="UpdateForm.PassWord" :min="1" :max="10")
  161. el-form-item(label='滑块' prop="PassWord")
  162. el-slider(v-model="UpdateForm.PassWord")
  163. el-form-item(label='开关' prop="PassWord")
  164. el-switch(v-model="UpdateForm.PassWord")
  165. el-form-item(label='单选框' prop="PassWord")
  166. el-radio-group(v-model="UpdateForm.PassWord")
  167. el-radio(:value="1") Option A
  168. el-radio(:value="2") Option B
  169. el-radio(:value="3") Option C
  170. el-form-item(label='评分' prop="PassWord")
  171. el-rate(v-model="UpdateForm.PassWord")
  172. el-form-item(label='穿梭框' prop="AdminName")
  173. el-transfer(v-model="UpdateForm.AdminName" :data="transferdata")
  174. el-button(
  175. :icon="useRenderIcon(Close)",
  176. :loading="loading",
  177. @click="closeVisible()"
  178. ) 关闭
  179. el-button(
  180. type="primary",
  181. :icon="useRenderIcon(Upload)",
  182. :loading="loading",
  183. @click="submit"
  184. ) 确认提交
  185. </template>
  186. <style scoped lang="scss">
  187. :deep(.el-dropdown-menu__item i) {
  188. margin: 0;
  189. }
  190. :deep(.el-form-item__label) {
  191. font-weight: 700;
  192. }
  193. :deep(.el-pagination) {
  194. flex-flow: wrap;
  195. }
  196. :deep(.is-draggable) {
  197. max-height: 80vh;
  198. overflow: auto;
  199. }
  200. :deep(.el-dialog__header) {
  201. position: sticky;
  202. top: 0;
  203. z-index: 2;
  204. background: #fff;
  205. }
  206. .collapsedom {
  207. padding: 0 20px;
  208. background-color: #fff;
  209. }
  210. .ovh-x {
  211. height: 40vh;
  212. overflow-y: auto;
  213. }
  214. :deep(.el-descriptions__header) {
  215. margin: 16px 0 !important;
  216. }
  217. </style>