123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 |
- <template>
- <!-- <div class="title">召测配置页面</div> -->
- <el-form ref="queryFormRef" :model="queryParams" :inline="true">
- <el-form-item label="设备SN:" style="width: 190px;">
- <el-input v-model="queryParams.deviceSn" placeholder="设备SN" width="90px" size="small" maxlength="11" />
- </el-form-item>
- <el-form-item label="遥测站编码:" style="margin-left: 10px;width: 200px;">
- <el-input v-model="queryParams.stationCode" placeholder="遥测站编码" width="90px" size="small" maxlength="10"/>
- </el-form-item>
- <el-form-item label="任务类型:" style="margin-left: 10px;width: 220px;">
- <el-select v-model="queryParams.taskType" class="filter-item" placeholder="安装/召测/配置" size="small"
- style="max-width: 150px;">
- <el-option v-for="(key, value) in taskTypeQueryMap" :key="key" :label="key" :value="value" />
- </el-select>
- </el-form-item>
- <el-form-item label="任务等级:" style="margin-left: 10px;width: 200px;">
- <el-select v-model="queryParams.taskLevel" class="filter-item" placeholder="任务等级" size="small">
- <el-option v-for="item in taskLevelsQuery" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </el-form-item>
- <el-form-item label="创建日期:" style="margin-left: 10px;">
- <el-config-provider :locale="locale">
- <el-date-picker v-model="queryParams.createTimeStart" type="date" placeholder="选择开始日期" :shortcuts="shortcuts"
- value-format="YYYY-MM-DD 00:00:00" size="small" style="max-width: 150px;" />
- </el-config-provider>
- </el-form-item>
- <el-form-item>
- <el-config-provider :locale="locale">
- <el-date-picker v-model="queryParams.createTimeEnd" type="date" placeholder="选择结束日期" :shortcuts="shortcuts"
- value-format="YYYY-MM-DD 23:59:59" size="small" style="max-width: 150px;" />
- </el-config-provider>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" class="button" :disabled="state.search_disabled" @click="queryList">
- 查询任务
- </el-button>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" class="button" @click="handleAdd">新增任务</el-button>
- </el-form-item>
- </el-form>
- <el-table v-loading="loading" :data="state.tableData" border stripe style="width: 100%" :height="tableHeight"
- highlight-current-row @current-change="handleCurrentRowChange"
- :header-cell-style="{ background: '#606266', color: '#FFFFFF' }">
- <el-table-column fixed type="index" width="50" align="center" />
- <el-table-column fixed prop="deviceSn" label="设备SN" header-align="center" width="120" />
- <!-- <el-table-column prop="deviceName" label="设备名称" header-align="center" width="100" /> -->
- <el-table-column fit prop="stationCode" label="遥测站编码" header-align="center" width="100" />
- <el-table-column label="任务类型" header-align="center" width="100" align="center">
- <template #default="scope">
- <span v-if="scope.row.taskType === '1'">召测配置</span>
- <span v-if="scope.row.taskType === '2'">召测数据</span>
- <span v-if="scope.row.taskType === '3'">远程配置</span>
- <span v-if="scope.row.taskType === '4'">审核结果</span>
- </template>
- </el-table-column>
- <el-table-column label="任务等级" header-align="center" width="100" align="center">
- <template #default="scope">
- <span v-if="scope.row.taskLevel === 1">常规任务</span>
- <span v-if="scope.row.taskLevel === 2">普通任务</span>
- <span v-if="scope.row.taskLevel === 3">紧急任务</span>
- <span v-if="scope.row.taskLevel === 99">特权任务</span>
- </template>
- </el-table-column>
- <el-table-column prop="createMan" label="创建人" header-align="center" width="100" align="center" />
- <el-table-column prop="createTime" label="创建时间" header-align="center" width="160" />
- <el-table-column label="执行状态" header-align="center" align="center" width="100">
- <template #default="scope">
- <span v-if="scope.row.finishedFlag === '0'">未执行</span>
- <span v-if="scope.row.finishedFlag === '1'">已执行</span>
- <span v-if="scope.row.finishedFlag === '2'">已完成</span>
- </template>
- </el-table-column>
- <el-table-column prop="finishedTime" label="完成时间" header-align="center" width="160" />
- <el-table-column label="" align="left" width="150">
- <template #default="scope">
- <el-button type="text" @click="handleEdit(scope.row)">编辑</el-button>
- <el-button type="text" @click="submitDeleteForm(scope.row)">删除</el-button>
- </template>
- </el-table-column>
- <el-table-column fixed="right" />
- </el-table>
- <el-config-provider :locale="locale">
- <el-pagination v-model:currentPage="queryParams.page" v-model:page-size="queryParams.rows"
- :page-sizes="[10, 15, 20, 25, 100]" :small="state.small" :disabled="state.disabled" :background="state.background"
- layout="total, sizes, prev, pager, next, jumper" :total="state.total"
- style="text-align: center; margin-top: 10px; height: 30px" @size-change="handleSizeChange"
- @current-change="handleCurrentChange" />
- </el-config-provider>
- <el-dialog :title="adddialog.title" v-model="adddialog.visible" width="450px" draggable center>
- <el-form ref="addFormRef" :model="formAddData" :rules="state.rules" label-width="100px">
- <el-form-item label="设备SN:" prop="deviceSn">
- <el-input v-model="formAddData.deviceSn" placeholder="设备SN" width="120px" maxlength="11" show-word-limit />
- </el-form-item>
- <el-form-item label="任务类型:">
- <el-select v-model="formAddData.taskType" class="filter-item" placeholder="任务类型" width="10px">
- <el-option v-for="(key, value) in taskTypeMap" :key="key" :label="key" :value="value" />
- </el-select>
- </el-form-item>
- <el-form-item label="任务等级:">
- <el-select v-model="formAddData.taskLevel" class="filter-item" placeholder="任务等级" width="10px">
- <el-option v-for="item in taskLevels" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="cancel(0)">取消</el-button>
- <el-button type="primary" @click="submitAddForm">确定</el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog :title="editdialog.title" v-model="editdialog.visible" width="450px" draggable center>
- <el-form ref="editFormRef" :model="formEditData" label-width="100px">
- <el-form-item label="设备SN:">
- <el-input v-model="formEditData.deviceSn" placeholder="设备SN" width="120px" />
- </el-form-item>
- <el-form-item label="任务类型:">
- <el-select v-model="formEditData.taskType" class="filter-item" placeholder="任务类型" width="120px">
- <el-option v-for="(key, value) in taskTypeMap" :key="key" :label="key" :value="value" />
- </el-select>
- </el-form-item>
- <el-form-item label="任务等级:">
- <el-select v-model="formEditData.taskLevel" class="filter-item" placeholder="任务等级" width="120px">
- <el-option v-for="item in taskLevels" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="cancel(1)">取消</el-button>
- <el-button type="primary" @click="submitEditForm">确定</el-button>
- </span>
- </template>
- </el-dialog>
- </template>
- <script lang="ts" setup>
- import { reactive, toRefs, toRef, ref, onMounted } from "vue";
- import { ElForm, ElMessage, ElMessageBox } from "element-plus";
- import TTaskDownAction from "@/api/downlinktask/ttaskdown";
- import { TTaskDownQueryParam, TTaskDown, Dialog, PageResult } from "@/types";
- import zhCn from "element-plus/lib/locale/lang/zh-cn";
- let locale = ref(zhCn);
- const addFormRef = ref(ElForm); // 属性名必须和元素的ref属性值一致
- const loading = ref(false);
- const state = reactive({
- queryParams: { page: 1, rows: 10 } as TTaskDownQueryParam,
- total: 0,
- small: false,
- background: true,
- disabled: false,
- search_disabled: false,
- adddialog: {} as Dialog,
- editdialog: {} as Dialog,
- formAddData: {} as TTaskDown,
- formEditData: {} as TTaskDown,
- tableData: [] as TTaskDown[],
- rules: {
- deviceSn: [
- { required: true, message: "设备SN不能为空", trigger: "blur" },
- { min: 11, max: 11, message: "设备SN长度不合法", trigger: "blur" },
- ],
- },
- });
- const {
- queryParams,
- total,
- adddialog,
- editdialog,
- formAddData,
- formEditData,
- tableData,
- } = toRefs(state);
- const tableHeight = ref(document.documentElement.clientHeight - 250);
- const currentRow = ref();
- const handleCurrentRowChange = (val: TTaskDown | undefined) => {
- currentRow.value = val;
- };
- //任务类型
- const taskTypeMap = {
- '1': "召测配置",
- '2': "召测数据",
- '3': "远程配置",
- '4': "审核结果",
- };
- const taskTypeQueryMap = {
- '1': "召测配置",
- '2': "召测数据",
- '3': "远程配置",
- '4': "审核结果",
- '0': "全部",
- };
- /* const taskLevelMap = {
- 1: "常规任务",
- 2: "普通任务",
- 3: "紧急任务",
- 99: "特权任务",
- };
- */
- //任务等级
- const taskLevels = [
- {
- value: 1,
- label: '常规任务',
- },
- {
- value: 2,
- label: '普通任务',
- },
- {
- value: 3,
- label: '紧急任务',
- },
- {
- value: 99,
- label: '特权任务',
- },
- ]
- //任务等级
- const taskLevelsQuery = [
- {
- value: 1,
- label: '常规任务',
- },
- {
- value: 2,
- label: '普通任务',
- },
- {
- value: 3,
- label: '紧急任务',
- },
- {
- value: 99,
- label: '特权任务',
- },
- {
- value: 0,
- label: '全部',
- },
- ]
- const handleAdd = () => {
- state.adddialog = {
- title: "新增召测任务",
- visible: true,
- };
- };
- const handleEdit = (row: any) => {
- state.formEditData = row;
- state.editdialog = {
- title: "编辑召测任务",
- visible: true,
- };
- };
- const queryList = () => {
- loading.value = true;
- state.search_disabled = true;
- TTaskDownAction.QueryTTaskDownList(state.queryParams)
- .then((result) => {
- if (result.status === 200) {
- const { res, flag, error } = result.data;
- if (flag != undefined && flag == 1) {
- const pageData = res as PageResult<TTaskDown[]>;
- state.tableData = pageData.list;
- state.total = pageData.total;
- } else {
- }
- loading.value = false;
- state.search_disabled = false;
- }
- })
- .catch((error) => {
- //请求失败时的操作
- ElMessage.error(error);
- loading.value = false;
- state.search_disabled = false;
- });
- };
- const handleSizeChange = (val: number) => {
- queryParams.value.rows = val;
- console.log(queryParams);
- queryList();
- };
- const handleCurrentChange = (val: number) => {
- queryParams.value.page = val;
- console.log(queryParams);
- queryList();
- };
- const submitAddForm = () => {
- addFormRef.value.validate((valid: any) => {
- if (valid) {
- state.formAddData.createMan = localStorage.getItem("UserName") + "";
- TTaskDownAction.AddTTaskDown(state.formAddData).then((result) => {
- const { res, flag, error } = result.data;
- if (flag === "1") {
- ElMessage.success("新增成功");
- cancel(0);
- queryList();
- }
- else{
- ElMessage.warning(error);
- }
- });
- }
- });
- };
- const submitEditForm = () => {
- TTaskDownAction.EditTTaskDown(state.formEditData).then((result) => {
- ElMessage.success("编辑成功");
- cancel(1);
- queryList();
- });
- };
- const submitDeleteForm = (row: any) => {
- ElMessageBox.confirm(" 是否删除设备[" + row.deviceSn + "]? ", "提示", {
- cancelButtonText: "取消",
- confirmButtonText: "确认",
- type: "warning",
- center: true,
- })
- .then(() => {
- TTaskDownAction.DeleteTTaskDown(row.id).then((result) => {
- ElMessage.success("删除成功");
- queryList();
- });
- })
- .catch(() => {
- ElMessage({
- type: "info",
- message: "取消删除成功!",
- });
- });
- };
- const cancel = (dialogType: number) => {
- if (dialogType == 0) {
- //addFormRef.value.resetFields();
- state.formAddData = {} as TTaskDown;
- state.formEditData= {} as TTaskDown;
- state.adddialog.visible = false;
- } else {
- //editFormRef.value.resetFields();
- state.formAddData = {} as TTaskDown;
- state.formEditData = {} as TTaskDown;
- state.editdialog.visible = false;
- }
- };
- onMounted(() => {
- window.onresize = function () {
- tableHeight.value = document.documentElement.clientHeight - 250;
- };
- queryList();
- });
- /* 日期控件开始 */
- const size = ref<'' | 'large' | 'small'>('')
- const shortcuts = [
- {
- text: '今天',
- value: new Date(),
- },
- {
- text: '昨天',
- value: () => {
- const date = new Date()
- date.setTime(date.getTime() - 3600 * 1000 * 24)
- return date
- },
- },
- {
- text: '前一周',
- value: () => {
- const date = new Date()
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
- return date
- },
- },
- ]
- /* 日期控件结束 */
- </script>
- <style lang="scss" scoped>
- .title {
- font-size: 30px;
- }
- </style>
|