Просмотр исходного кода

feat: 修复表格组件的type为find逻辑

xyh 5 месяцев назад
Родитель
Сommit
ec70ff0080

+ 41 - 0
src/api/points/rules_api.js

@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+
+/**
+ * 获取活动列表的函数
+ * @param {Object} query - 查询参数对象,包含查询条件
+ */
+export function getActivityList(query) {
+  let res = {
+    "total": 4,
+    "rows": [
+      {
+        "activityName": "签到活动",
+        "activityType": "1",
+        "activityCity": "太原",
+        "activityStatus": "1",
+        "activityTime": '2026-1-1  -  2027-1-1',
+      },
+      {
+        "activityName": "新手任务",
+        "activityType": "2",
+        "activityCity": "太原",
+        "activityStatus": "3",
+        "activityTime": '长期有效',
+      },
+    ],
+    "code": 200,
+    "msg": "查询成功"
+  }
+  return new Promise((resolve, reject) => {
+    // 模拟网络延迟 1000ms
+    setTimeout(() => {
+      resolve(res)
+    }, 1000);
+  });
+  // return request({
+  //   url: '/ylxAlarm/getAlarmList', // 请求的API地址
+  //   method: 'get', // 请求方法为GET
+  //   params: query // 将查询参数作为请求参数发送
+  // })
+}

+ 2 - 1
src/components/tableCompontent/TableColumn.vue

@@ -197,7 +197,8 @@
               )
             }}</span>
         </el-tooltip>
-        <span v-else>{{
+        <span v-else>
+         {{
             toLabel(
               itemCol.option,
               scope.row[itemCol.prop],

+ 27 - 13
src/views/pointsManagement/pointsRules/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
         <el-form :model="queryParams" ref="queryRef" size="small" :inline="true" v-show="showSearch" label-width="68px">
           <el-form-item label="活动类型" prop="activityType">
-            <DictSelect v-model="queryParams.activityType" :dictOptions="navigateMenuOption" placeholder="请选择"/>
+            <DictSelect v-model="queryParams.activityType" :dictOptions="activityTypeOption" placeholder="请选择"/>
           </el-form-item>
           <el-form-item label="城市" prop="activityCity">
             <DictSelect v-model="queryParams.activityCity" :dictOptions="navigateMenuOption" placeholder="请选择"/>
@@ -40,7 +40,12 @@
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
-    <tableCompontent ref="tableRef" :loading="loading" :tableData="list" :columnData="columnData">
+    <tableCompontent ref="tableRef" height="" :loading="loading" :tableData="list" :columnData="columnData">
+      <template v-slot:activityStatus="row">
+        <span v-if="row.activityStatus === '1'" style="color: #85c91e">进行中</span>
+        <span v-else-if="row.activityStatus === '3'" style="color: red">已结束</span>
+        <span v-else>--</span>
+      </template>
       <template v-slot:nickName="row">
         <el-link type="primary" slot="reference" @click="viewStatistics(row)">查看统计</el-link>
       </template>
@@ -62,7 +67,7 @@
 </template>
 
 <script>
-import { listUser } from "@/api/system/user";
+import { getActivityList } from "@/api/points/rules_api";
 import tableCompontent from "@/components/tableCompontent/index.vue";
 import listMixin from '@/utils/listMixin';
 export default {
@@ -73,10 +78,17 @@ export default {
   },
   data() {
     return {
-      // 显示搜索条件
-      showSearch: true,
       // 用户表格数据
       list: null,
+      activityTypeOption:[
+        {label:'签到任务',value:'1'},
+        {label:'新手任务',value:'2'},
+      ],
+      navigateMenuOption:[
+        {label:'测试数据',value:'1'},
+        {label:'测试数据1',value:'2'},
+        {label:'测试数据2',value:'3'}
+      ],
       columnData:[
         {
           prop: 'seq',
@@ -87,7 +99,7 @@ export default {
           fixed: 'left'
         },
         {
-          prop: 'email',
+          prop: 'activityName',
           label: '活动名称',
           align:'center',
         },
@@ -95,6 +107,8 @@ export default {
           prop: 'activityType',
           label: '活动类型',
           align:'center',
+          type:'find',
+          option:[]
         },
         {
           prop: 'activityCity',
@@ -104,8 +118,8 @@ export default {
         {
           prop: 'activityStatus',
           label: '状态',
-          color:'red',
           align:'center',
+          type: 'diy',
         },
         {
           prop: 'activityTime',
@@ -127,11 +141,6 @@ export default {
           width: 120
         },
       ],
-      navigateMenuOption:[
-        {label:'测试数据',value:'1'},
-        {label:'测试数据1',value:'2'},
-        {label:'测试数据2',value:'3'}
-      ]
     };
   },
   created() {
@@ -142,13 +151,18 @@ export default {
       activityStatus:'',
       dateRange:[],
     }
-    //this.getListUrl = listUser;
+    this.isImmediateLoad = false;
+    this.getListUrl = getActivityList;
     // 或者设置自定义数据处理函数
     this.customProcessDataFun = (val) => {
       // 自定义处理查询参数
       this.queryParams = this.DateRange(this.queryParams,val.dateRange || [],['startTime','endTime'],'s')
     };
   },
+  mounted(){
+    this.columnData.find(item => item.prop === 'activityType').option = this.activityTypeOption;
+    this.handleQuery();
+  },
   methods: {
     /** 新增操作 */
     handleRuleAdd() {