From 07a9b6e6126cca79d359f9b6beb39625e687f5ba Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 05 四月 2023 20:12:11 +0800
Subject: [PATCH] update 优化 demo 界面代码

---
 src/views/demo/demo/index.vue |  367 ++++++++++++++++++++--------------------------------
 1 files changed, 141 insertions(+), 226 deletions(-)

diff --git a/src/views/demo/demo/index.vue b/src/views/demo/demo/index.vue
index 71cc1fc..2786a51 100644
--- a/src/views/demo/demo/index.vue
+++ b/src/views/demo/demo/index.vue
@@ -3,26 +3,23 @@
     <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div class="search" v-show="showSearch">
         <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
+          <el-form-item label="閮ㄩ棬id" prop="deptId">
+            <el-input v-model="queryParams.deptId" placeholder="璇疯緭鍏ラ儴闂╥d" clearable @keyup.enter="handleQuery" />
+          </el-form-item>
+          <el-form-item label="鐢ㄦ埛id" prop="userId">
+            <el-input v-model="queryParams.userId" placeholder="璇疯緭鍏ョ敤鎴穒d" clearable @keyup.enter="handleQuery" />
+          </el-form-item>
+          <el-form-item label="鎺掑簭鍙�" prop="orderNum">
+            <el-input v-model="queryParams.orderNum" placeholder="璇疯緭鍏ユ帓搴忓彿" clearable @keyup.enter="handleQuery" />
+          </el-form-item>
           <el-form-item label="key閿�" prop="testKey">
-            <el-input v-model="queryParams.testKey" placeholder="璇疯緭鍏ey閿�" clearable style="width: 200px" @keyup.enter="handleQuery" />
+            <el-input v-model="queryParams.testKey" placeholder="璇疯緭鍏ey閿�" clearable @keyup.enter="handleQuery" />
           </el-form-item>
           <el-form-item label="鍊�" prop="value">
-            <el-input v-model="queryParams.value" placeholder="璇疯緭鍏ュ��" clearable style="width: 200px" @keyup.enter="handleQuery" />
-          </el-form-item>
-          <el-form-item label="鍒涘缓鏃堕棿">
-            <el-date-picker
-              v-model="daterangeCreateTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
-            ></el-date-picker>
+            <el-input v-model="queryParams.value" placeholder="璇疯緭鍏ュ��" clearable @keyup.enter="handleQuery" />
           </el-form-item>
           <el-form-item>
-            <el-button type="primary" icon="search" @click="handleQuery">鎼滅储</el-button>
-            <el-button type="primary" icon="search" @click="handlePage">鎼滅储(鑷畾涔夊垎椤垫帴鍙�)</el-button>
+            <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
             <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
           </el-form-item>
         </el-form>
@@ -39,12 +36,7 @@
             <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['demo:demo:edit']">淇敼</el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['demo:demo:remove']">
-              鍒犻櫎
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['demo:demo:import']">瀵煎叆(鏍¢獙)</el-button>
+            <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['demo:demo:remove']">鍒犻櫎</el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['demo:demo:export']">瀵煎嚭</el-button>
@@ -55,40 +47,33 @@
 
       <el-table v-loading="loading" :data="demoList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="涓婚敭" align="center" prop="id" v-if="columns[0].visible" />
-        <el-table-column label="閮ㄩ棬id" align="center" prop="deptId" v-if="columns[1].visible" />
-        <el-table-column label="鐢ㄦ埛id" align="center" prop="userId" v-if="columns[2].visible" />
-        <el-table-column label="鎺掑簭鍙�" align="center" prop="orderNum" v-if="columns[3].visible" />
-        <el-table-column label="key閿�" align="center" prop="testKey" v-if="columns[4].visible" />
-        <el-table-column label="鍊�" align="center" prop="value" v-if="columns[5].visible" />
-        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" v-if="columns[6].visible" width="180">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="鍒涘缓浜�" align="center" prop="createByName" v-if="columns[7].visible" />
-        <el-table-column label="鏇存柊鏃堕棿" align="center" prop="updateTime" v-if="columns[8].visible" width="180">
-          <template #default="scope">
-            <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="鏇存柊浜�" align="center" prop="updateByName" v-if="columns[9].visible" />
-        <el-table-column label="鎿嶄綔" fixed="right" align="center" width="150" class-name="small-padding fixed-width">
+        <el-table-column label="涓婚敭" align="center" prop="id" v-if="true" />
+        <el-table-column label="閮ㄩ棬id" align="center" prop="deptId" />
+        <el-table-column label="鐢ㄦ埛id" align="center" prop="userId" />
+        <el-table-column label="鎺掑簭鍙�" align="center" prop="orderNum" />
+        <el-table-column label="key閿�" align="center" prop="testKey" />
+        <el-table-column label="鍊�" align="center" prop="value" />
+        <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-tooltip content="淇敼" placement="top">
               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['demo:demo:edit']"></el-button>
             </el-tooltip>
-            <el-tooltip content="淇敼" placement="top">
+            <el-tooltip content="鍒犻櫎" placement="top">
               <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['demo:demo:remove']"></el-button>
             </el-tooltip>
           </template>
         </el-table-column>
       </el-table>
 
-      <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <pagination
+          v-show="total>0"
+          :total="total"
+          v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+      />
     </el-card>
-
-    <!-- 娣诲姞鎴栦慨鏀规祴璇曞崟琛ㄥ璇濇 -->
+    <!-- 娣诲姞鎴栦慨鏀规祴璇曞崟瀵硅瘽妗� -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
       <el-form ref="demoFormRef" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="閮ㄩ棬id" prop="deptId">
@@ -106,10 +91,6 @@
         <el-form-item label="鍊�" prop="value">
           <el-input v-model="form.value" placeholder="璇疯緭鍏ュ��" />
         </el-form-item>
-        <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
-          <el-date-picker clearable v-model="form.createTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="閫夋嫨鍒涘缓鏃堕棿">
-          </el-date-picker>
-        </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -118,39 +99,14 @@
         </div>
       </template>
     </el-dialog>
-    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
-    <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
-      <el-upload
-        ref="uploadRef"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :action="upload.url + '?updateSupport=' + upload.updateSupport"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-      </el-upload>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
-          <el-button @click="upload.open = false">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog>
   </div>
 </template>
 
 <script setup name="Demo" lang="ts">
-import { listDemo, pageDemo, getDemo, delDemo, addDemo, updateDemo } from "@/api/demo/demo";
-import { getToken } from "@/utils/auth";
-import { ComponentInternalInstance } from "vue";
-import { ElUpload, UploadFile, UploadFiles, DateModelType } from 'element-plus';
-import { DemoForm, DemoQuery, DemoVO } from "@/api/demo/types";
+import { listDemo, getDemo, delDemo, addDemo, updateDemo } from '@/api/demo/demo';
+import { DemoVO, DemoQuery, DemoForm } from '@/api/demo/demo/types';
+import { ComponentInternalInstance } from 'vue';
+import { ElForm } from 'element-plus';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
@@ -158,200 +114,159 @@
 const buttonLoading = ref(false);
 const loading = ref(true);
 const showSearch = ref(true);
-const ids = ref<Array<string | number>>([])
+const ids = ref<Array<string | number>>([]);
 const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
-const daterangeCreateTime = ref<[DateModelType, DateModelType]>(['', '']);
 
-const demoFormRef = ref(ElForm);
 const queryFormRef = ref(ElForm);
-const uploadRef = ref(ElUpload);
+const demoFormRef = ref(ElForm);
 
 const dialog = reactive<DialogOption>({
-    visible: false,
-    title: ''
+  visible: false,
+  title: ''
 });
 
-/** 鐢ㄦ埛瀵煎叆鍙傛暟 */
-const upload = reactive<ImportOption>({
-    // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
-    open: false,
-    // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
-    title: "",
-    // 鏄惁绂佺敤涓婁紶
-    isUploading: false,
-    // 璁剧疆涓婁紶鐨勮姹傚ご閮�
-    headers: { Authorization: "Bearer " + getToken() },
-    // 涓婁紶鐨勫湴鍧�
-    url: import.meta.env.VITE_APP_BASE_API + "demo/demo/importData"
-})
-
-// 鍒楁樉闅愪俊鎭�
-const columns = ref<FieldOption[]>([
-    { key: 0, label: `涓婚敭`, visible: false },
-    { key: 1, label: `閮ㄩ棬id`, visible: true },
-    { key: 2, label: `鐢ㄦ埛id`, visible: true },
-    { key: 3, label: `鎺掑簭鍙穈, visible: true },
-    { key: 4, label: `key閿甡, visible: true },
-    { key: 5, label: `鍊糮, visible: true },
-    { key: 6, label: `鍒涘缓鏃堕棿`, visible: true },
-    { key: 7, label: `鍒涘缓浜篳, visible: true },
-    { key: 8, label: `鏇存柊鏃堕棿`, visible: true },
-    { key: 9, label: `鏇存柊浜篳, visible: true }
-]);
-
-const initDataForm: DemoForm = {
-    id: undefined,
-    deptId: undefined,
-    userId: undefined,
-    orderNum: 0,
-    testKey: '',
-    value: '',
-    version: '',
-    ossConfigId: undefined,
+const initFormData: DemoForm = {
+  id: undefined,
+  deptId: undefined,
+  userId: undefined,
+  orderNum: undefined,
+  testKey: undefined,
+  value: undefined,
 }
 const data = reactive<PageData<DemoForm, DemoQuery>>({
-    form: { ...initDataForm },
-    queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        testKey: '',
-        value: '',
-        createTime: '',
-    },
-    rules: {
-        testKey: [{ required: true, message: "key閿笉鑳戒负绌�", trigger: "blur" }],
-        value: [{ required: true, message: "鍊间笉鑳戒负绌�", trigger: "blur" }],
-    }
+  form: {...initFormData},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    deptId: undefined,
+    userId: undefined,
+    orderNum: undefined,
+    testKey: undefined,
+    value: undefined,
+  },
+  rules: {
+    id: [
+      { required: true, message: "涓婚敭涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    deptId: [
+      { required: true, message: "閮ㄩ棬id涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    userId: [
+      { required: true, message: "鐢ㄦ埛id涓嶈兘涓虹┖", trigger: "blur" }
+    ],
+    orderNum: [
+      { required: true, message: "鎺掑簭鍙蜂笉鑳戒负绌�", trigger: "blur" }
+    ],
+    testKey: [
+      { required: true, message: "key閿笉鑳戒负绌�", trigger: "blur" }
+    ],
+    value: [
+      { required: true, message: "鍊间笉鑳戒负绌�", trigger: "blur" }
+    ],
+  }
 });
 
 const { queryParams, form, rules } = toRefs(data);
 
-/** 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃 */
+/** 鏌ヨ娴嬭瘯鍗曞垪琛� */
 const getList = async () => {
-    loading.value = true;
-    const res = await listDemo(proxy?.addDateRange(queryParams.value, daterangeCreateTime.value, "CreateTime"));
-    demoList.value = res.rows;
-    total.value = res.total;
-    loading.value = false;
+  loading.value = true;
+  const res = await listDemo(queryParams.value);
+  demoList.value = res.rows;
+  total.value = res.total;
+  loading.value = false;
 }
-/** 鑷畾涔夊垎椤垫煡璇� */
-const getPage = async () => {
-    loading.value = true;
-    const res = await pageDemo(proxy?.addDateRange(queryParams.value, daterangeCreateTime.value, "CreateTime"));
-    demoList.value = res.rows;
-    total.value = res.total;
-    loading.value = false;
-}
+
 /** 鍙栨秷鎸夐挳 */
 const cancel = () => {
-    reset();
-    dialog.visible = false;
+  reset();
+  dialog.visible = false;
 }
+
 /** 琛ㄥ崟閲嶇疆 */
 const reset = () => {
-    form.value = { ...initDataForm };
-    demoFormRef.value.resetFields();
+  form.value = {...initFormData};
+  demoFormRef.value.resetFields();
 }
+
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
-    queryParams.value.pageNum = 1;
-    getList();
+  queryParams.value.pageNum = 1;
+  getList();
 }
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handlePage = () => {
-    queryParams.value.pageNum = 1;
-    getList();
-}
+
 /** 閲嶇疆鎸夐挳鎿嶄綔 */
 const resetQuery = () => {
-    daterangeCreateTime.value = ['', ''];
-    queryFormRef.value.resetFields();
-    handleQuery();
+  queryFormRef.value.resetFields();
+  handleQuery();
 }
-/** 閫夋嫨鏉℃暟  */
+
+/** 澶氶�夋閫変腑鏁版嵁 */
 const handleSelectionChange = (selection: DemoVO[]) => {
-    ids.value = selection.map(item => item.id);
-    single.value = selection.length != 1;
-    multiple.value = !selection.length;
+  ids.value = selection.map(item => item.id);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
 }
+
 /** 鏂板鎸夐挳鎿嶄綔 */
 const handleAdd = () => {
-    dialog.visible = true;
-    dialog.title = "娣诲姞娴嬭瘯鍗曡〃";
-    nextTick(() => {
-        reset();
-    })
+  dialog.visible = true;
+  dialog.title = "娣诲姞娴嬭瘯鍗�";
+  nextTick(() => {
+    reset();
+  });
 }
+
 /** 淇敼鎸夐挳鎿嶄綔 */
-const handleUpdate = async (row?: DemoVO) => {
-    loading.value = true;
-    dialog.visible = true;
-    dialog.title = "淇敼娴嬭瘯鍗曡〃";
-    const _ids = row?.id || ids.value[0];
-    const res = await getDemo(_ids);
-    nextTick(() => {
-        reset();
-        Object.assign(form.value, res.data)
-        loading.value = false;
-    })
+const handleUpdate = (row?: DemoVO) => {
+  loading.value = true
+  dialog.visible = true;
+  dialog.title = "淇敼娴嬭瘯鍗�";
+  nextTick(async () => {
+    reset();
+    const _id = row?.id || ids.value[0]
+    const res = await getDemo(_id);
+    loading.value = false;
+    Object.assign(form.value, res.data);
+  });
 }
+
 /** 鎻愪氦鎸夐挳 */
 const submitForm = () => {
-    demoFormRef.value.validate(async (valid: boolean) => {
-        if (valid) {
-            buttonLoading.value = true;
-            if (form.value.ossConfigId) {
-                await updateDemo(form.value).finally(() => buttonLoading.value = false);
-            } else {
-                await addDemo(form.value).finally(() => buttonLoading.value = false);
-            }
-            proxy?.$modal.msgSuccess("鎿嶄綔鎴愬姛");
-            dialog.visible = false;
-            getList();
-        }
-    });
+  demoFormRef.value.validate(async (valid: boolean) => {
+    if (valid) {
+      buttonLoading.value = true;
+      if (form.value.id) {
+        await updateDemo(form.value).finally(() =>  buttonLoading.value = false);
+      } else {
+        await addDemo(form.value).finally(() =>  buttonLoading.value = false);
+      }
+      proxy?.$modal.msgSuccess("淇敼鎴愬姛");
+      dialog.visible = false;
+      await getList();
+    }
+  });
 }
+
 /** 鍒犻櫎鎸夐挳鎿嶄綔 */
 const handleDelete = async (row?: DemoVO) => {
-    const _ids = row?.id || ids.value;
-    await proxy?.$modal.confirm('鏄惁纭鍒犻櫎娴嬭瘯鍗曡〃缂栧彿涓�"' + _ids + '"鐨勬暟鎹」?');
-    await delDemo(_ids).finally(() => loading.value = false);
-    loading.value = false;
-    getList();
-    proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+  const _ids = row?.id || ids.value;
+  await proxy?.$modal.confirm('鏄惁纭鍒犻櫎娴嬭瘯鍗曠紪鍙蜂负"' + _ids + '"鐨勬暟鎹」锛�').finally(() => loading.value = false);
+  await delDemo(_ids);
+  proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+  await getList();
 }
-/** 瀵煎叆鎸夐挳鎿嶄綔 */
-const handleImport = () => {
-    upload.title = "娴嬭瘯瀵煎叆";
-    upload.open = true;
-}
+
 /** 瀵煎嚭鎸夐挳鎿嶄綔 */
 const handleExport = () => {
-    proxy?.download("demo/demo/export", {
-        ...queryParams.value,
-    }, `demo_${new Date().getTime()}.xlsx`);
-}
-/**鏂囦欢涓婁紶涓鐞� */
-const handleFileUploadProgress = () => {
-    upload.isUploading = true;
-}
-/** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
-const handleFileSuccess = (res: any, file: UploadFile, fileList: UploadFiles) => {
-    upload.open = false;
-    upload.isUploading = false;
-    uploadRef.value.clearFiles();
-    ElMessageBox.alert(res.msg, "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
-    getList();
-}
-/** 鎻愪氦涓婁紶鏂囦欢 */
-function submitFileForm() {
-    uploadRef.value.submit();
+  proxy?.download('demo/demo/export', {
+    ...queryParams.value
+  }, `demo_${new Date().getTime()}.xlsx`)
 }
 
 onMounted(() => {
-    getList()
-    getPage()
-})
+  getList();
+});
 </script>

--
Gitblit v1.9.3