|
@@ -1,34 +1,23 @@
|
|
|
-
|
|
|
<template>
|
|
|
<div class="layout-pd">
|
|
|
<el-row>
|
|
|
-<!--操作-->
|
|
|
- <el-col :xs="24" >
|
|
|
- <el-card class="mt8" shadow="hover" >
|
|
|
-<el-form :model="state.filter" :inline="true" @submit.stop.prevent style="margin-bottom: -3vh;">
|
|
|
+ <!-- 操作区域 -->
|
|
|
+ <el-col :xs="24">
|
|
|
+ <el-card class="mt8" shadow="hover">
|
|
|
+ <el-form :model="state.filter" :inline="true" @submit.stop.prevent style="margin-bottom: -3vh;">
|
|
|
<el-form-item prop="name" style="width: 100%">
|
|
|
-<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
+ <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
<el-form-item label="用户名称">
|
|
|
<el-input v-model="state.filter.userName" placeholder="请输入用户名称" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-<!-- <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
- <el-form-item label="微信昵称">
|
|
|
- <el-input v-model="state.filter.nickname" placeholder="请输入微信昵称" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
- <el-form-item label="用户角色">
|
|
|
- <el-input v-model="state.filter.userRole" placeholder="请输入用户角色" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col> -->
|
|
|
-<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
+ <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
<el-form-item label="用户手机号">
|
|
|
<el-input v-model="state.filter.userPhone" placeholder="请输入用户手机号" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-<el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
- <el-form-item label="选择添加时间">
|
|
|
+ <el-col :xs="24" :sm="12" :md="8" :lg="8" :xl="6" class="mb20">
|
|
|
+ <el-form-item label="选择添加时间">
|
|
|
<el-date-picker
|
|
|
v-model="state.filter.createtime"
|
|
|
type="datetimerange"
|
|
@@ -39,41 +28,40 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-</el-form-item>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
<hr>
|
|
|
|
|
|
-<el-row justify="space-between" class="submit-button" style="margin-bottom: -9px;">
|
|
|
- <el-row>
|
|
|
-<el-button type="primary" icon="ele-Search" @click="onQuery"> 查询 </el-button>
|
|
|
-<el-button type="primary" icon="ele-RefreshRight" @click="onReset"> 重置 </el-button>
|
|
|
-</el-row>
|
|
|
-<el-button type="primary" icon="ele-Plus" @click="onAdd"> 添加 </el-button>
|
|
|
-
|
|
|
-</el-row>
|
|
|
-</el-card>
|
|
|
+ <el-row justify="space-between" class="submit-button" style="margin-bottom: -9px;">
|
|
|
+ <el-row>
|
|
|
+ <el-button type="primary" icon="ele-Search" @click="onQuery">查询</el-button>
|
|
|
+ <el-button type="primary" icon="ele-RefreshRight" @click="onReset">重置</el-button>
|
|
|
+ </el-row>
|
|
|
+ <el-button type="primary" icon="ele-Plus" @click="onAdd">添加</el-button>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
</el-col>
|
|
|
-<!--表格-->
|
|
|
- <el-col :xs="24" >
|
|
|
+
|
|
|
+ <!-- 表格区域 -->
|
|
|
+ <el-col :xs="24">
|
|
|
<el-card style="height: 70vh" class="my-fill mt8" shadow="hover">
|
|
|
-<el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
|
|
|
- <el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label" >
|
|
|
- </el-table-column>
|
|
|
-<el-table-column label="操作" fixed="right" header-align="center" align="center" class="right-operation" width="140">
|
|
|
- <template #default="{ row }" >
|
|
|
-<el-link
|
|
|
+ <el-table v-loading="state.loading" stripe :data="state.tableModel" row-key="id" style="width: 100%">
|
|
|
+ <el-table-column v-for="column in state.dynamicColumns" :key="column.prop" :prop="column.prop" :label="column.label" />
|
|
|
+ <el-table-column label="操作" fixed="right" header-align="center" align="center" class="right-operation" width="140">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-link
|
|
|
class="my-el-link mr12 ml12"
|
|
|
type="primary"
|
|
|
- icon="ele-Upload"
|
|
|
+ icon="ele-Delete"
|
|
|
@click="onDataDelete(row)"
|
|
|
:underline="false"
|
|
|
target="_blank"
|
|
|
>删除</el-link>
|
|
|
-</template>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
-</el-table>
|
|
|
-<div class="my-flex my-flex-end" style="margin-top: 20px">
|
|
|
+ </el-table>
|
|
|
+ <div class="my-flex my-flex-end" style="margin-top: 20px">
|
|
|
<el-pagination
|
|
|
v-model:currentPage="pageState.pageInput.currentPage"
|
|
|
v-model:page-size="pageState.pageInput.pageSize"
|
|
@@ -86,146 +74,334 @@
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
/>
|
|
|
</div>
|
|
|
-</el-card>
|
|
|
+ </el-card>
|
|
|
</el-col>
|
|
|
-</el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <script setup lang="ts">
|
|
|
- import {onBeforeMount, onMounted, reactive, ref, watch} from "vue";
|
|
|
- import eventBus from "/@/utils/mitt";
|
|
|
- import {Api} from "/@/api/admin/AlarmService/userList";
|
|
|
-import { PushUsersDto } from "/@/api/admin/AlarmService/userListDto";
|
|
|
-import type { pageInput } from "/@/api/admin/AlarmService/userListDto";
|
|
|
+ </el-row>
|
|
|
|
|
|
+ <!-- 添加用户弹窗 -->
|
|
|
+ <el-dialog
|
|
|
+ v-model="addDialogVisible"
|
|
|
+ title="添加用户"
|
|
|
+ @close="handleDialogClose"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ :model="addForm"
|
|
|
+ :rules="addFormRules"
|
|
|
+ ref="addFormRef"
|
|
|
+ label-width="100px"
|
|
|
+ >
|
|
|
+ <!-- 用户名称下拉框 -->
|
|
|
+ <el-form-item label="用户名称" prop="userName">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedUserId"
|
|
|
+ placeholder="请选择微信用户"
|
|
|
+ :options="wxUserOptions"
|
|
|
+ :loading="wxUserLoading"
|
|
|
+ @change="handleUserSelect"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ :remote-method="searchWxUsers"
|
|
|
+ :no-data-text="noDataText"
|
|
|
+ style="width: 300px;"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="user in wxUserOptions"
|
|
|
+ :key="user.userid"
|
|
|
+ :label="`${user.nickname || user.userName} - ${user.phone}`"
|
|
|
+ :value="user.userid"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <!-- 自动填充字段 -->
|
|
|
+ <el-form-item label="用户ID" prop="userId">
|
|
|
+ <el-input v-model="addForm.userId" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="微信昵称" prop="nickname">
|
|
|
+ <el-input v-model="addForm.nickname" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="用户手机号" prop="userPhone">
|
|
|
+ <el-input v-model="addForm.userPhone" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="添加时间" prop="createtime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="addForm.createtime"
|
|
|
+ type="datetime"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ placeholder="请选择添加时间"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="addDialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="handleSubmit">确认添加</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import { onBeforeMount, onMounted, reactive, ref, watch } from "vue";
|
|
|
+import eventBus from "/@/utils/mitt";
|
|
|
+import { Api } from "/@/api/admin/AlarmService/userList";
|
|
|
+import { PushUsersDto } from "/@/api/admin/AlarmService/userListDto";
|
|
|
+import type { pageInput, WxUserinfo } from "/@/api/admin/AlarmService/userListDto";
|
|
|
import { useDynamicPageSize } from "/@/composables/useDynamicPageSize";
|
|
|
+import { ElMessage, FormRules } from "element-plus";
|
|
|
+import { getWxUserPage } from "/@/api/admin/AlarmService/userList";
|
|
|
|
|
|
-// 使用组合式函数获取分页状态
|
|
|
-const pageState = useDynamicPageSize(10, 15);
|
|
|
+const addDialogVisible = ref<boolean>(false);
|
|
|
+const noDataText = ref<string>('暂无匹配用户');
|
|
|
+const selectedUserId = ref<number | null>(null);
|
|
|
+const wxUserOptions = ref<WxUserinfo[]>([]);
|
|
|
+const wxUserLoading = ref(false);
|
|
|
+const wxUserPage = ref(1);
|
|
|
+const addFormRef = ref<HTMLFormElement | null>(null);
|
|
|
|
|
|
-/**数据对象*/
|
|
|
- const state = reactive({
|
|
|
- /**加载显示 */
|
|
|
- loading: false,
|
|
|
- /**条件查询模块 */
|
|
|
+const addFormRules = reactive<FormRules>({
|
|
|
+ userName: [{ required: true, message: "请选择用户", trigger: "change" }],
|
|
|
+ createtime: [{ required: true, message: "请选择添加时间", trigger: "change" }],
|
|
|
+});
|
|
|
+
|
|
|
+const addForm = reactive<PushUsersDto>({
|
|
|
+ userId: 0,
|
|
|
+ userName: "",
|
|
|
+ nickname: "",
|
|
|
+ userPhone: "",
|
|
|
+ userOpenid: "",
|
|
|
+ createtime: new Date().toISOString().split("T")[0] + "T00:00:00",
|
|
|
+ stime: "",
|
|
|
+ etime: "",
|
|
|
+});
|
|
|
+
|
|
|
+const handleSubmit = async () => {
|
|
|
+ if (!addFormRef.value) return;
|
|
|
+ await (addFormRef.value as any).validate(async (valid: boolean) => {
|
|
|
+ if (!valid) return;
|
|
|
+
|
|
|
+ try {
|
|
|
+ const uploadData: PushUsersDto = {
|
|
|
+ userId: addForm.userId,
|
|
|
+ userName: addForm.userName,
|
|
|
+ nickname: addForm.nickname,
|
|
|
+ userPhone: addForm.userPhone,
|
|
|
+ userOpenid: addForm.userOpenid,
|
|
|
+ createtime: addForm.createtime,
|
|
|
+ stime: addForm.createtime,
|
|
|
+ etime: addForm.createtime,
|
|
|
+ };
|
|
|
+
|
|
|
+ const res = await new Api().uploadPushUsers(uploadData);
|
|
|
+
|
|
|
+ if (res.success) {
|
|
|
+ ElMessage.success("用户上传成功");
|
|
|
+ resetForm();
|
|
|
+ addDialogVisible.value = false;
|
|
|
+ await init();
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg || "上传失败");
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ ElMessage.error("网络请求失败,请重试");
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+const handleDialogClose = () => {
|
|
|
+ resetForm();
|
|
|
+};
|
|
|
+
|
|
|
+const resetForm = () => {
|
|
|
+ addForm.userId = 0;
|
|
|
+ addForm.userName = "";
|
|
|
+ addForm.nickname = "";
|
|
|
+ addForm.userPhone = "";
|
|
|
+ addForm.userOpenid = "";
|
|
|
+ addForm.createtime = new Date().toISOString().split("T")[0] + "T00:00:00";
|
|
|
+ addForm.stime = "";
|
|
|
+ addForm.etime = "";
|
|
|
+ selectedUserId.value = null;
|
|
|
+ wxUserOptions.value = [];
|
|
|
+};
|
|
|
+
|
|
|
+const searchWxUsers = async (keyword: string) => {
|
|
|
+ if (keyword.length < 2 && keyword.trim() !== "") return;
|
|
|
+
|
|
|
+ wxUserLoading.value = true;
|
|
|
+ wxUserPage.value = 1;
|
|
|
+
|
|
|
+ try {
|
|
|
+ const res = await getWxUserPage({
|
|
|
+ currentPage: wxUserPage.value - 1,
|
|
|
+ pageSize: 20,
|
|
|
filter: {
|
|
|
-/**用户名称 */
|
|
|
- userName: "",
|
|
|
-/**微信昵称 */
|
|
|
- nickname: "",
|
|
|
-/**用户角色 */
|
|
|
- userRole: "",
|
|
|
-/**用户手机号 */
|
|
|
- userPhone: "",
|
|
|
-/**添加时间 */
|
|
|
- createtime: [] as string[]
|
|
|
+ nickname: keyword,
|
|
|
+ userName: keyword,
|
|
|
+ phone: keyword,
|
|
|
+ userid: 0
|
|
|
},
|
|
|
- /**表格信息 */
|
|
|
-tableModel: [] as PushUsersDto,
|
|
|
- /**动态表头 */
|
|
|
- dynamicColumns: [
|
|
|
-{ prop: 'userId', label: '用户id' },
|
|
|
-{ prop: 'userName', label: '用户名称' },
|
|
|
-{ prop: 'nickname', label: '微信昵称' },
|
|
|
-{ prop: 'userPhone', label: '用户手机号' },
|
|
|
-{ prop: 'userOpenid', label: '用户Openid' },
|
|
|
-{ prop: 'createtime', label: '添加时间' },],
|
|
|
-/**分页标识 */
|
|
|
- pageInput:{
|
|
|
- CurrentPage: 1,
|
|
|
- PageSize: 10,
|
|
|
- } as pageInput,
|
|
|
- /**分页总数 */
|
|
|
- total: 0,
|
|
|
-})
|
|
|
- onMounted(() => {
|
|
|
- // 初始化分页大小
|
|
|
- state.pageInput.PageSize = pageState.pageInput.pageSize;
|
|
|
- init()
|
|
|
- eventBus.off('refreshView')
|
|
|
- eventBus.on('refreshView', async () => {
|
|
|
- await init()
|
|
|
- })
|
|
|
- console.log()
|
|
|
- })
|
|
|
- onBeforeMount(() => {
|
|
|
- eventBus.off('refreshView')
|
|
|
- })
|
|
|
-
|
|
|
- /**
|
|
|
-* 页条变化
|
|
|
-* @param val
|
|
|
-*/
|
|
|
+ });
|
|
|
+
|
|
|
+ if (res.success) {
|
|
|
+ wxUserOptions.value = res.data.list.map((user: { nickname: any; userName: any; phone: any; }) => ({
|
|
|
+ ...user,
|
|
|
+ label: `${user.nickname || user.userName} - ${user.phone}`,
|
|
|
+ }));
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg || "搜索用户失败");
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ ElMessage.error("网络请求失败,请重试");
|
|
|
+ } finally {
|
|
|
+ wxUserLoading.value = false;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const handleUserSelect = (userid: number | null) => {
|
|
|
+ if (!userid) return;
|
|
|
+ const user = wxUserOptions.value.find(u => u.userid === userid);
|
|
|
+ if (user) {
|
|
|
+ addForm.userId = user.userid;
|
|
|
+ addForm.userName = user.userName || "";
|
|
|
+ addForm.nickname = user.nickname || "";
|
|
|
+ addForm.userPhone = user.phone || "";
|
|
|
+ addForm.userOpenid = user.openid || "";
|
|
|
+ } else {
|
|
|
+ addForm.userId = 0;
|
|
|
+ addForm.userName = "";
|
|
|
+ addForm.nickname = "";
|
|
|
+ addForm.userPhone = "";
|
|
|
+ addForm.userOpenid = "";
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+watch(addDialogVisible, (visible) => {
|
|
|
+ if (visible) {
|
|
|
+ selectedUserId.value = null;
|
|
|
+ wxUserOptions.value = [];
|
|
|
+ searchWxUsers("");
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+const pageState = useDynamicPageSize(10, 15);
|
|
|
+
|
|
|
+const state = reactive({
|
|
|
+ loading: false,
|
|
|
+ wxUserList: [] as WxUserinfo[],
|
|
|
+ wxTotal: 0,
|
|
|
+ filter: {
|
|
|
+ userName: "",
|
|
|
+ userPhone: "",
|
|
|
+ createtime: [] as string[], // 存储时间范围数组 [startTime, endTime]
|
|
|
+ },
|
|
|
+ tableModel: [] as PushUsersDto[],
|
|
|
+ dynamicColumns: [
|
|
|
+ { prop: 'userId', label: '用户id' },
|
|
|
+ { prop: 'userName', label: '用户名称' },
|
|
|
+ { prop: 'nickname', label: '微信昵称' },
|
|
|
+ { prop: 'userPhone', label: '用户手机号' },
|
|
|
+ { prop: 'userOpenid', label: '用户Openid' },
|
|
|
+ { prop: 'createtime', label: '添加时间' },
|
|
|
+ ],
|
|
|
+ pageInput: {
|
|
|
+ currentPage: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ } as pageInput,
|
|
|
+ total: 0,
|
|
|
+});
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ state.pageInput.pageSize = pageState.pageInput.pageSize;
|
|
|
+ init();
|
|
|
+ eventBus.on('refreshView', async () => await init());
|
|
|
+});
|
|
|
+
|
|
|
+onBeforeMount(() => {
|
|
|
+ eventBus.off('refreshView');
|
|
|
+});
|
|
|
+
|
|
|
const onSizeChange = (val: number) => {
|
|
|
- state.pageInput.PageSize = val
|
|
|
- init()
|
|
|
-}
|
|
|
+ state.pageInput.pageSize = val;
|
|
|
+ init();
|
|
|
+};
|
|
|
|
|
|
-/**
|
|
|
- * 页数 变化
|
|
|
- * @param val
|
|
|
- */
|
|
|
const onCurrentChange = (val: number) => {
|
|
|
- state.pageInput.CurrentPage = val
|
|
|
- init()
|
|
|
-}
|
|
|
- /**
|
|
|
- * 监听变换
|
|
|
- */
|
|
|
- watch(() => {})
|
|
|
-/**条件查询 */
|
|
|
- const onQuery = () => {
|
|
|
- init()
|
|
|
- }
|
|
|
- /**初始化 */
|
|
|
+ state.pageInput.currentPage = val;
|
|
|
+ init();
|
|
|
+};
|
|
|
+
|
|
|
+const onQuery = () => {
|
|
|
+ init();
|
|
|
+};
|
|
|
+
|
|
|
const init = async () => {
|
|
|
state.loading = true;
|
|
|
-
|
|
|
- // 处理时间范围
|
|
|
+
|
|
|
+ // 解析时间范围:从 createtime 数组中获取 start/end 时间
|
|
|
+ const [stime, etime] = state.filter.createtime || [];
|
|
|
+
|
|
|
+ // 构建过滤参数(与后端接口参数名匹配,如 startTime/endTime)
|
|
|
const filterData = {
|
|
|
- ...state.filter,
|
|
|
- startTime: state.filter.createtime?.[0] || null, // 开始时间
|
|
|
- endTime: state.filter.createtime?.[1] || null, // 结束时间
|
|
|
- createtime: undefined, // 避免发送 createtime 数组
|
|
|
+ userName: state.filter.userName,
|
|
|
+ userPhone: state.filter.userPhone,
|
|
|
+ stime, // 开始时间
|
|
|
+ etime, // 结束时间
|
|
|
};
|
|
|
|
|
|
- const res: any = await new Api().getList({
|
|
|
- ...state.pageInput,
|
|
|
- Filter: filterData,
|
|
|
- });
|
|
|
+ // 处理分页参数(确保 currentPage 为有效整数,后端从 0 开始分页)
|
|
|
+ const pageParams = {
|
|
|
+ currentPage: state.pageInput.currentPage - 1,
|
|
|
+ pageSize: state.pageInput.pageSize,
|
|
|
+ };
|
|
|
|
|
|
- state.total = res?.data?.total ?? 0;
|
|
|
- state.tableModel = res?.data?.list ?? [];
|
|
|
- state.loading = false;
|
|
|
+ try {
|
|
|
+ // 调用查询接口,传递分页参数和过滤条件
|
|
|
+ const res = await new Api().getList({
|
|
|
+ ...pageParams,
|
|
|
+ filter: filterData, // 假设后端接口接收 filter 对象包含 startTime/endTime
|
|
|
+ });
|
|
|
+
|
|
|
+ state.total = res.data.total || 0;
|
|
|
+ state.tableModel = res.data.list || [];
|
|
|
+ } catch (error) {
|
|
|
+ ElMessage.error("数据加载失败");
|
|
|
+ } finally {
|
|
|
+ state.loading = false;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const onReset = () => {
|
|
|
+ state.filter = {
|
|
|
+ userName: "",
|
|
|
+ userPhone: "",
|
|
|
+ createtime: [], // 清空时间范围
|
|
|
+ };
|
|
|
+ init(); // 重置后重新查询
|
|
|
+};
|
|
|
+
|
|
|
+const onAdd = () => {
|
|
|
+ addDialogVisible.value = true;
|
|
|
+};
|
|
|
+
|
|
|
+const onDataDelete = (row: any) => {
|
|
|
+ // 待实现删除逻辑
|
|
|
};
|
|
|
-/**添加 */
|
|
|
- const onAdd=()=>{}
|
|
|
-/**重置 */
|
|
|
- const onReset=()=>{
|
|
|
- state.filter.userPhone='',
|
|
|
- state.filter.userName= "",
|
|
|
- state.filter.nickname="",
|
|
|
- state.filter.userRole="",
|
|
|
- state.filter.createtime=[]
|
|
|
- }
|
|
|
-/**删除 */
|
|
|
- const onDataDelete=(row)=>{}
|
|
|
</script>
|
|
|
+
|
|
|
<style scoped lang="scss">
|
|
|
.el-input,
|
|
|
.el-select {
|
|
|
width: 240px;
|
|
|
}
|
|
|
|
|
|
-/* 输入框标签固定四个字符宽度 */
|
|
|
::v-deep .el-form-item__label {
|
|
|
- // 字体大小14,4个字符,12px右间距
|
|
|
- width: 14*6px+12px;
|
|
|
+ width: calc(14px * 6 + 12px);
|
|
|
justify-content: start;
|
|
|
}
|
|
|
|
|
|
-/* 数据表头 设置灰色样式 */
|
|
|
::v-deep .el-table th.el-table__cell {
|
|
|
background-color: #F6F6F6;
|
|
|
}
|
|
|
- </style>
|
|
|
+</style>
|