index.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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. const 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(
  65. UserUrl.User.userSearch.method,
  66. UserUrl.User.userSearch.url,
  67. UpdateForm.value
  68. );
  69. if (status === "1") {
  70. ElMessage({
  71. message: "新增成功",
  72. type: "success"
  73. });
  74. UpdateForm.value = {
  75. AdminName: "",
  76. RealName: "",
  77. RoleId: "",
  78. PassWord: ""
  79. };
  80. } else {
  81. ElMessageBox.alert(info, "提示", {
  82. confirmButtonText: "关闭",
  83. type: "warning"
  84. });
  85. }
  86. };
  87. const closeFn: any = inject("closeAddVisible");
  88. // 关闭弹窗回调函数
  89. const closeVisible = () => {
  90. UpdateForm.value = {
  91. AdminName: "",
  92. RealName: "",
  93. RoleId: "",
  94. PassWord: ""
  95. };
  96. closeFn();
  97. };
  98. </script>
  99. <template lang="pug">
  100. .main
  101. el-dialog(v-model='props.addVisible' width="50%" title="新增" @close="closeVisible()")
  102. //- 有选项卡模板
  103. el-tabs(v-model="activeId" class="demo-tabs" @tab-click="handleClick")
  104. el-tab-pane(label="选项卡一" name="1")
  105. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  106. el-form-item(label='账户名称' prop="RealName")
  107. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  108. placeholder="请输入账户名称")
  109. el-form-item(label='用户名' prop="AdminName")
  110. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  111. placeholder="请输入用户名")
  112. el-form-item(label='密码' prop="PassWord")
  113. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  114. placeholder="请输入密码")
  115. el-form-item(label="角色:", prop="RoleId")
  116. el-select(
  117. v-model="UpdateForm.RoleId",
  118. placeholder="请选择用户角色",
  119. clearable,
  120. class="!w-[230px]"
  121. )
  122. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  123. el-tab-pane(label="选项卡二" name="2")
  124. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  125. el-form-item(label='账户名称' prop="RealName")
  126. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  127. placeholder="请输入账户名称")
  128. el-form-item(label='用户名' prop="AdminName")
  129. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  130. placeholder="请输入用户名")
  131. el-form-item(label='密码' prop="PassWord")
  132. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  133. placeholder="请输入密码")
  134. el-form-item(label="角色:", prop="RoleId")
  135. el-select(
  136. v-model="UpdateForm.RoleId",
  137. placeholder="请选择用户角色",
  138. clearable,
  139. class="!w-[230px]"
  140. )
  141. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  142. //- 无选项卡模板
  143. el-form(:model='UpdateForm' label-position="right" label-width="100px")
  144. el-form-item(label='账户名称' prop="RealName")
  145. el-input(v-model='UpdateForm.RealName' autocomplete='off' class="!w-[230px]"
  146. placeholder="请输入账户名称")
  147. el-form-item(label='用户名' prop="AdminName")
  148. el-input(v-model='UpdateForm.AdminName' autocomplete='off' class="!w-[230px]"
  149. placeholder="请输入用户名")
  150. el-form-item(label='密码' prop="PassWord")
  151. el-input(v-model='UpdateForm.PassWord' autocomplete='off' class="!w-[230px]"
  152. placeholder="请输入密码")
  153. el-form-item(label="角色:", prop="RoleId")
  154. el-select(
  155. v-model="UpdateForm.RoleId",
  156. placeholder="请选择用户角色",
  157. clearable,
  158. class="!w-[230px]"
  159. )
  160. el-option(:label="item.label", :value="item.Id" v-for="(item,index) in optionList")
  161. el-form-item(label='取色器' prop="PassWord")
  162. el-color-picker(v-model="UpdateForm.AdminName" show-alpha)
  163. el-form-item(label='数字输入框' prop="PassWord")
  164. el-input-number(v-model="UpdateForm.PassWord" :min="1" :max="10")
  165. el-form-item(label='滑块' prop="PassWord")
  166. el-slider(v-model="UpdateForm.PassWord")
  167. el-form-item(label='开关' prop="PassWord")
  168. el-switch(v-model="UpdateForm.PassWord")
  169. el-form-item(label='单选框' prop="PassWord")
  170. el-radio-group(v-model="UpdateForm.PassWord")
  171. el-radio(:value="1") Option A
  172. el-radio(:value="2") Option B
  173. el-radio(:value="3") Option C
  174. el-form-item(label='评分' prop="PassWord")
  175. el-rate(v-model="UpdateForm.PassWord")
  176. el-form-item(label='穿梭框' prop="AdminName")
  177. el-transfer(v-model="UpdateForm.AdminName" :data="transferdata")
  178. el-button(
  179. :icon="useRenderIcon(Close)",
  180. :loading="loading",
  181. @click="closeVisible()"
  182. ) 关闭
  183. el-button(
  184. type="primary",
  185. :icon="useRenderIcon(Upload)",
  186. :loading="loading",
  187. @click="submit"
  188. ) 确认提交
  189. </template>
  190. <style scoped lang="scss">
  191. :deep(.el-dropdown-menu__item i) {
  192. margin: 0;
  193. }
  194. :deep(.el-form-item__label) {
  195. font-weight: 700;
  196. }
  197. :deep(.el-pagination) {
  198. flex-flow: wrap;
  199. }
  200. :deep(.is-draggable) {
  201. max-height: 80vh;
  202. overflow: auto;
  203. }
  204. :deep(.el-dialog__header) {
  205. position: sticky;
  206. top: 0;
  207. z-index: 2;
  208. background: #fff;
  209. }
  210. .collapsedom {
  211. padding: 0 20px;
  212. background-color: #fff;
  213. }
  214. .ovh-x {
  215. height: 40vh;
  216. overflow-y: auto;
  217. }
  218. :deep(.el-descriptions__header) {
  219. margin: 16px 0 !important;
  220. }
  221. </style>