|
@@ -0,0 +1,245 @@
|
|
|
+<template>
|
|
|
+ <n-space vertical>
|
|
|
+ <n-space justify="end">
|
|
|
+ <n-button type="primary" @click="showAddModal">添加</n-button>
|
|
|
+ </n-space>
|
|
|
+ <n-data-table
|
|
|
+ :columns="columns"
|
|
|
+ :data="data"
|
|
|
+ :pagination="pagination"
|
|
|
+ :bordered="false"
|
|
|
+ />
|
|
|
+ </n-space>
|
|
|
+ <n-modal
|
|
|
+ style="width: 30%"
|
|
|
+ :show-icon="false"
|
|
|
+ v-model:show="modal.showModal"
|
|
|
+ preset="dialog"
|
|
|
+ :title="modal.title"
|
|
|
+ positive-text="提交"
|
|
|
+ negative-text="取消"
|
|
|
+ @positive-click="submitCallback"
|
|
|
+ >
|
|
|
+ <n-form
|
|
|
+ ref="formRef"
|
|
|
+ :model="formValue"
|
|
|
+ label-placement="left"
|
|
|
+ label-width="auto"
|
|
|
+ :rules="rules"
|
|
|
+ >
|
|
|
+ <n-form-item label="任务名称" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="用户" path="T_uuid">
|
|
|
+ <n-select
|
|
|
+ v-model:value="formValue.T_uuid"
|
|
|
+ :options="userList"
|
|
|
+ label-field="T_user"
|
|
|
+ value-field="T_uuid"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="任务模板" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="截止时间" path="T_deadline">
|
|
|
+ <n-date-picker
|
|
|
+ v-model:formatted-value="formValue.T_deadline"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ type="datetime"
|
|
|
+ clearable
|
|
|
+ class="w-full"
|
|
|
+ />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="数据采集负责人" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="报告编写负责人" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="交付审核负责人" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ <n-form-item label="实施方案负责人" path="T_name">
|
|
|
+ <n-input v-model:value="formValue.T_name" clearable />
|
|
|
+ </n-form-item>
|
|
|
+ </n-form>
|
|
|
+ </n-modal>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import { h } from "vue";
|
|
|
+import { NButton, NSpace } from "naive-ui";
|
|
|
+import { getTaskData, getUserData } from "@/api";
|
|
|
+
|
|
|
+const formRef = ref(null);
|
|
|
+
|
|
|
+// 验证表项的规则
|
|
|
+const rules = {
|
|
|
+ T_name: { required: true, message: "请输入名称", trigger: "blur" },
|
|
|
+ T_text: { required: true, message: "请输入描述", trigger: "blur" },
|
|
|
+};
|
|
|
+
|
|
|
+// 查询参数
|
|
|
+const queryData = reactive({
|
|
|
+ T_uuid: "",
|
|
|
+ T_name: "",
|
|
|
+ page: 1,
|
|
|
+ page_z: 10,
|
|
|
+});
|
|
|
+
|
|
|
+// 任务列表
|
|
|
+const data = ref([]);
|
|
|
+
|
|
|
+// 用户列表
|
|
|
+const userList = ref([]);
|
|
|
+
|
|
|
+// 获取表项中收集到的值的对象
|
|
|
+const formValue = reactive({
|
|
|
+ T_name: null,
|
|
|
+ T_uuid: null,
|
|
|
+ T_VerifyTemplate_id: null,
|
|
|
+ T_deadline: null,
|
|
|
+ T_collection: null,
|
|
|
+ T_reporting: null,
|
|
|
+ T_delivery: null,
|
|
|
+ T_scheme: null,
|
|
|
+});
|
|
|
+
|
|
|
+// 模态框数据源
|
|
|
+const modal = reactive({
|
|
|
+ title: "",
|
|
|
+ showModal: false,
|
|
|
+});
|
|
|
+
|
|
|
+// 需要展示的列
|
|
|
+const columns = [
|
|
|
+ {
|
|
|
+ title: "公司名称",
|
|
|
+ key: "T_user_name",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "报告名称",
|
|
|
+ key: "T_name",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "截止时间",
|
|
|
+ key: "T_deadline",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "流程",
|
|
|
+ key: "length",
|
|
|
+ render() {
|
|
|
+ return ["数据采集", "报告编写", "交付审核"].map((item) =>
|
|
|
+ h(
|
|
|
+ "span",
|
|
|
+ {},
|
|
|
+ {
|
|
|
+ default: () => item,
|
|
|
+ }
|
|
|
+ )
|
|
|
+ );
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "操作",
|
|
|
+ key: "actions",
|
|
|
+ render() {
|
|
|
+ return h(
|
|
|
+ NSpace,
|
|
|
+ {},
|
|
|
+ {
|
|
|
+ default: () =>
|
|
|
+ [
|
|
|
+ "设备管理",
|
|
|
+ "数据来源",
|
|
|
+ "数据编辑",
|
|
|
+ "数据校验",
|
|
|
+ "报告生成",
|
|
|
+ "报告编辑",
|
|
|
+ "报告审核",
|
|
|
+ ].map((item) =>
|
|
|
+ h(
|
|
|
+ NButton,
|
|
|
+ {
|
|
|
+ type: "primary",
|
|
|
+ size: "small",
|
|
|
+ onClick: () => {},
|
|
|
+ },
|
|
|
+ { default: () => item }
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ }
|
|
|
+ );
|
|
|
+ },
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+// 执行 positive 时执行的回调函数
|
|
|
+const submitCallback = () => {
|
|
|
+ if (modal.title === "添加") {
|
|
|
+ console.log("添加");
|
|
|
+ } else {
|
|
|
+ console.log("添加");
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 显示添加
|
|
|
+const showAddModal = () => {
|
|
|
+ modal.title = "添加";
|
|
|
+ modal.showModal = true;
|
|
|
+ Object.keys(formValue).forEach((key) => (formValue[key] = null));
|
|
|
+};
|
|
|
+
|
|
|
+// 添加
|
|
|
+// const addProject = () => {
|
|
|
+// formRef.value.validate(async (errors) => {
|
|
|
+// if (!errors) {
|
|
|
+// try {
|
|
|
+// const { data: res } = await addProjectData({
|
|
|
+// T_name: formValue.T_name,
|
|
|
+// T_text: formValue.T_text,
|
|
|
+// });
|
|
|
+// message.success(res.Msg);
|
|
|
+// getProjectList();
|
|
|
+// } finally {
|
|
|
+// formRef.value.restoreValidation();
|
|
|
+// Object.keys(formValue).forEach((key) => (formValue[key] = ""));
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// modal.showModal = true;
|
|
|
+// message.error("验证失败,请填写完整信息");
|
|
|
+// }
|
|
|
+// });
|
|
|
+// };
|
|
|
+
|
|
|
+// 分页数据源
|
|
|
+const pagination = reactive({
|
|
|
+ page: queryData.page,
|
|
|
+ pageSize: queryData.page_z,
|
|
|
+ itemCount: 0,
|
|
|
+ onChange: (page) => {
|
|
|
+ pagination.page = page;
|
|
|
+ queryData.page = page;
|
|
|
+ getDataList();
|
|
|
+ },
|
|
|
+});
|
|
|
+
|
|
|
+// 用户(列表)
|
|
|
+const getUserList = async () => {
|
|
|
+ const { data: res } = await getUserData({});
|
|
|
+ userList.value = res.Data.List;
|
|
|
+};
|
|
|
+
|
|
|
+// 任务管理(列表)
|
|
|
+const getDataList = async () => {
|
|
|
+ const { data: res } = await getTaskData(queryData);
|
|
|
+ pagination.itemCount = res.Data.Num;
|
|
|
+ data.value = res.Data.List;
|
|
|
+};
|
|
|
+
|
|
|
+getUserList();
|
|
|
+getDataList();
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped></style>
|