Alex 9 månader sedan
förälder
incheckning
843d4c1fba

+ 53 - 16
src/views/riskControl/restrictConfig/index.vue

@@ -7,28 +7,31 @@
         :model="form"
         label-width="200px"
       >
-        <el-form-item label="每人每日最多扫描" prop="abnormalNum1" required>
-          <el-input v-model="form.abnormalNum1">
+        <el-form-item label="每人每日最多扫描" prop="maxEverybodyEverydayScan">
+          <el-input v-model="form.maxEverybodyEveryDayScan">
             <template #append>次</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="每人每月最多可卖" prop="abnormalNum2" required>
-          <el-input v-model="form.abnormalNum2">
+        <el-form-item label="每人每月最多可卖" prop="maxEverybodyEveryMonthNum">
+          <el-input v-model="form.maxEverybodyEveryMonthNum">
             <template #append>单</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="每人每日最多可卖" prop="abnormalNum2" required>
-          <el-input v-model="form.abnormalNum2">
+        <el-form-item label="每人每日最多可卖" prop="maxEverybodyEveryDayNum">
+          <el-input v-model="form.maxEverybodyEveryDayNum">
             <template #append>单</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="未提交订单每人最多可扫描" prop="abnormalNum2" required>
-          <el-input v-model="form.abnormalNum2">
+        <el-form-item
+          label="未提交订单每人最多可扫描"
+          prop="maxEverybodyScanUnSubmit"
+        >
+          <el-input v-model="form.maxEverybodyScanUnSubmit">
             <template #append>次</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="单个订单删除本数" prop="abnormalNum2" required>
-          <el-input v-model="form.abnormalNum2">
+        <el-form-item label="单个订单删除本数" prop="maxEverybodyOrderDelete">
+          <el-input v-model="form.maxEverybodyOrderDelete">
             <template #append>本</template>
           </el-input>
         </el-form-item>
@@ -48,21 +51,55 @@
 </template>
 
 <script setup>
+  import { ref, reactive, onMounted, getCurrentInstance } from 'vue';
+  import { ElMessage } from 'element-plus';
+
+  const { proxy } = getCurrentInstance();
   const formRef = ref(null);
   const form = reactive({
-    abnormalNum1: '',
-    abnormalNum2: '',
-    mobile: ''
+    maxEverybodyEveryDayScan: '',
+    maxEverybodyEveryMonthNum: '',
+    maxEverybodyEveryDayNum: '',
+    maxEverybodyScanUnSubmit: '',
+    maxEverybodyOrderDelete: ''
   });
 
-  const submitForm = async (formEl) => {
+  // 获取数据
+  const fetchData = () => {
+    proxy.$http
+      .get('/user/userRequestLimit/getSet')
+      .then((res) => {
+        if (res.data.code === 200) {
+          Object.assign(form, res.data.data);
+        }
+      })
+      .catch((error) => {
+        console.error('获取数据失败:', error);
+        ElMessage.error('获取数据失败');
+      });
+  };
+
+  // 提交表单
+  const submitForm = (formEl) => {
     if (!formEl) return;
-    await formEl.validate((valid, fields) => {
+    formEl.validate((valid, fields) => {
       if (valid) {
-        console.log('submit!');
+        proxy.$http
+          .post('/user/userRequestLimit/update', form)
+          .then(() => {
+            ElMessage.success('保存成功');
+          })
+          .catch((error) => {
+            console.error('保存失败:', error);
+            ElMessage.error('保存失败');
+          });
       } else {
         console.log('error submit!', fields);
       }
     });
   };
+
+  onMounted(() => {
+    fetchData();
+  });
 </script>

+ 32 - 5
src/views/riskControl/restrictLog/components/page-search.vue

@@ -11,20 +11,43 @@
 </template>
 
 <script setup>
-  import { reactive, ref, defineEmits } from 'vue';
+  import { reactive, ref, defineEmits, onMounted } from 'vue';
   import ProSearch from '@/components/CommonPage/ProSearch2.vue';
+  import request from '@/utils/request';
 
   let { proxy } = getCurrentInstance();
   const emit = defineEmits(['search']);
 
+  const typeOptions = ref([]);
+
+  // 获取限制类型列表
+  const fetchTypeList = async () => {
+    try {
+      const res = await request.get('/user/userRequestLimit/typeList');
+      if (res.data.code === 200) {
+        typeOptions.value = res.data.data.map(item => ({
+          label: item.name,
+          value: item.code
+        }));
+      }
+    } catch (error) {
+      console.error('获取限制类型列表失败:', error);
+    }
+  };
+
   const formItems = reactive([
-    { type: 'input', label: '用户名', prop: 'userName' },
-    { type: 'select', label: '限制类型', prop: 'restrictType' }
+    { type: 'input', label: '昵称', prop: 'nickName' },
+    {
+      type: 'select',
+      label: '限制类型',
+      prop: 'limitType',
+      options: typeOptions
+    }
   ]);
 
   const initKeys = reactive({
-    userName: '',
-    restrictType: ''
+    nickName: '',
+    limitType: ''
   });
 
   const searchRef = ref(null);
@@ -32,4 +55,8 @@
   const search = (data) => {
     emit('search', { ...data });
   };
+
+  onMounted(() => {
+    fetchTypeList();
+  });
 </script>

+ 11 - 7
src/views/riskControl/restrictLog/components/restrict-history.vue

@@ -12,6 +12,7 @@
       :pageConfig="pageConfig"
       :columns="columns"
       :tools="false"
+      :immediate="false"
     >
     </common-table>
     <template #footer>
@@ -35,22 +36,25 @@
   };
 
   /** 弹窗打开事件 */
-  const handleOpen = () => {
-    visible.value = true;
+  const handleOpen = (userId) => {
+    if (userId) {
+      visible.value = true;
+      pageConfig.value.pageUrl = `/user/userRequestLimit/logList/${userId}`;
+      pageRef.value?.reload();
+    }
   };
 
   /** 表格列配置 */
   const columns = ref([
     { label: '限制时间', prop: 'createTime', align: 'center', width: 180 },
-    { label: '限制原因', prop: 'dataCount', align: 'center' },
+    { label: '限制类型', prop: 'limitType', align: 'center' },
     { label: '操作员', prop: 'createName', align: 'center', width: 90 }
   ]);
 
-  const pageConfig = reactive({
-    pageUrl: '/common/exportrecord/pagelist',
+  const pageConfig = ref({
+    pageUrl: '/user/userRequestLimit/logList',
     fileName: '限制历史',
-    cacheKey: 'restrict-history',
-    params: { logType: 1 }
+    cacheKey: 'restrict-history'
   });
 
   defineExpose({

+ 6 - 8
src/views/riskControl/restrictLog/index.vue

@@ -30,17 +30,15 @@
   import CommonTable from '@/components/CommonPage/CommonTable.vue';
   import pageSearch from './components/page-search.vue';
   import restrictHistory from '@/views/riskControl/restrictLog/components/restrict-history.vue'
-  import { useDictData } from '@/utils/use-dict-data';
-  import request from '@/utils/request';
 
   defineOptions({ name: 'restrictLog' });
 
   /** 表格列配置 */
   const columns = ref([
-    { label: '用户UID', prop: 'uid', align: 'center' },
-    { label: '限制类型', prop: 'restrictType', align: 'center' },
-    { label: '限制时间', prop: 'createTime', align: 'center' },
-    { label: '限制ip', prop: 'ip', align: 'center' },
+    { label: '用户UID', prop: 'userId', align: 'center' },
+    { label: '限制类型', prop: 'limitType', align: 'center' },
+    { label: '限制时间', prop: 'limitTime', align: 'center' },
+    { label: '限制ip', prop: 'userIp', align: 'center' },
     {
       columnKey: 'action',
       label: '操作',
@@ -54,7 +52,7 @@
   const pageRef = ref(null);
 
   const pageConfig = reactive({
-    pageUrl: '/system/post/list',
+    pageUrl: '/user/userRequestLimit/pageList',
     fileName: '访问限制日志',
     cacheKey: 'restrictLogTable'
   });
@@ -67,6 +65,6 @@
   //编辑页面
   const restrictLogRef = ref(null);
   function handleView(row) {
-    restrictLogRef.value?.handleOpen(row);
+    restrictLogRef.value?.handleOpen(row.userId);
   }
 </script>