Hu Cheng %!s(int64=2) %!d(string=hai) anos
pai
achega
99cbe05965

+ 2 - 1
src/router/index.js

@@ -43,7 +43,8 @@ const router = createRouter({
           component: () => import("@/views/project/data/checkout/index.vue"),
         },
         {
-          path: "/report_create",
+          path: "/report_create/:taskId",
+          props: true,
           component: () => import("@/views/project/report/create/index.vue"),
         },
         {

+ 59 - 42
src/views/project/certificate/index.vue

@@ -8,27 +8,51 @@
           <n-breadcrumb-item>实施方案</n-breadcrumb-item>
         </n-breadcrumb>
       </template>
+      <n-descriptions bordered>
+        <n-descriptions-item label="报告名称">
+          {{ taskInfo.T_name }}
+        </n-descriptions-item>
+        <n-descriptions-item label="创建时间">
+          {{ taskInfo.CreateTime }}
+        </n-descriptions-item>
+        <n-descriptions-item label="修改时间">
+          {{ taskInfo.UpdateTime }}
+        </n-descriptions-item>
+      </n-descriptions>
     </n-page-header>
-    <div class="w-[500px]">
-      <n-form
-        ref="formRef"
-        :model="formValue"
-        :rules="rules"
-        label-placement="left"
-        label-width="auto"
-      >
-        <template v-for="item of templateDataList" :key="item.T_VerifyTemplateMap_id">
-          <n-form-item
-            :label="item.T_name"
-            :path="item.T_field"
-            v-if="item.T_label !== 5"
-          >
-            <n-input v-model:value="formValue[item.T_field]" />
-          </n-form-item>
-          <n-divider v-else />
-        </template>
-      </n-form>
-    </div>
+    <n-grid x-gap="12" :cols="3">
+      <n-gi>
+        <n-list>
+          <n-list-item>
+            <template #suffix>
+              <n-button type="error" size="large">删除</n-button>
+            </template>
+            <n-card
+              embedded
+              :bordered="false"
+              content-style="text-align: center"
+            >
+              123
+            </n-card>
+          </n-list-item>
+        </n-list>
+      </n-gi>
+      <n-gi :span="2">
+        <n-space justify="end">
+          <n-button text style="font-size: 24px" @click="onPrint">
+            <n-icon>
+              <printer-icon />
+            </n-icon>
+          </n-button>
+        </n-space>
+        <n-scrollbar style="max-height: 500px" trigger="none">
+        <vue-pdf-embed
+          ref="pdfRef"
+          source="https://pure-admin.github.io/pure-admin-doc/pdf/Cookie%E5%92%8CSession%E5%8C%BA%E5%88%AB%E7%94%A8%E6%B3%95.pdf"
+        />
+        </n-scrollbar>
+      </n-gi>
+    </n-grid>
   </n-space>
   <n-modal
     :show-icon="false"
@@ -44,21 +68,18 @@
 </template>
 
 <script setup>
-import { getVerifyTemplateMapData } from "@/api";
+import VuePdfEmbed from "vue-pdf-embed";
+import { PrinterOutlined as PrinterIcon } from "@vicons/antd";
+import { getTask } from "@/api";
+
+const pdfRef = ref(null);
 
 const props = defineProps({
   taskId: String,
 });
 
-// 表单信息
-const formValue = reactive({
-  T_name: null,
-  time: null,
-  extent: null,
-});
-
-// 模板标签数据列表
-const templateDataList = ref([]);
+// 任务信息
+const taskInfo = ref({});
 
 // 模态框数据源
 const modal = reactive({
@@ -66,11 +87,9 @@ const modal = reactive({
   showModal: false,
 });
 
-// 验证表项的规则
-const rules = {
-  T_name: { required: true, message: "不能为空", trigger: "blur" },
-  time: { required: true, message: "不能为空", trigger: ["blur", "change"] },
-  extent: { required: true, message: "不能为空", trigger: ["blur", "change"] },
+// 打印pdf
+const onPrint = () => {
+  pdfRef.value.print();
 };
 
 // 执行 positive 时执行的回调函数
@@ -82,17 +101,15 @@ const submitCallback = () => {
   }
 };
 
-// 模板标签数据(列表)
-const getVerifyTemplateMapDataList = async () => {
-  const { data: res } = await getVerifyTemplateMapData({
-    T_source: 1,
+// 任务(获取)
+const getTaskInfo = async () => {
+  const { data: res } = await getTask({
     T_task_id: props.taskId,
-    T_VerifyTemplate_id: "rtxF",
   });
-  templateDataList.value = res.Data.reverse();
+  taskInfo.value = res.Data;
 };
 
-getVerifyTemplateMapDataList();
+getTaskInfo();
 </script>
 
 <style scoped></style>

+ 5 - 1
src/views/project/equipment/index.vue

@@ -67,7 +67,11 @@
       label-width="auto"
       :rules="rules"
     >
-      <n-form-item label="SN" path="T_sn" v-if="modal.title === '批量导入'">
+      <n-form-item
+        label="设备序列号"
+        path="T_sn"
+        v-if="modal.title === '批量导入'"
+      >
         <n-transfer v-model:value="formValue.T_sn" :options="deviceOptions" />
       </n-form-item>
       <n-form-item label="编号" path="T_id" v-else>

+ 169 - 37
src/views/project/index.vue

@@ -9,8 +9,17 @@
 
 <script setup>
 import { h } from "vue";
-import { NButton, NSpace } from "naive-ui";
+import {
+  NButton,
+  NSpace,
+  NCard,
+  NTag,
+  NGridItem,
+  NGrid,
+  NIcon,
+} from "naive-ui";
 import { getTaskData } from "@/api";
+import { ArrowRightOutlined as ArrowRightIcon } from "@vicons/antd";
 
 const router = useRouter();
 
@@ -41,16 +50,128 @@ const columns = [
   },
   {
     title: "流程",
-    key: "length",
-    render() {
-      return ["数据采集", "报告编写", "交付审核"].map((item) =>
-        h(
-          "span",
-          {},
-          {
-            default: () => item,
-          }
-        )
+    key: "T_task_id",
+    render(row) {
+      return h(
+        NSpace,
+        {
+          align: "center",
+        },
+        {
+          default: () => [
+            h(
+              NCard,
+              {
+                contentStyle: {
+                  textAlign: "center",
+                  padding: 0
+                }
+              },
+              {
+                default: () => row.T_scheme_name,
+                cover: () =>
+                  h(
+                    NTag,
+                    {
+                      class: "w-full",
+                      type: "success",
+                      bordered: false,
+                    },
+                    {
+                      default: () => "实施方案",
+                    }
+                  ),
+              }
+            ),
+            h(
+              NIcon,
+              { size: 25, component: ArrowRightIcon, color: "#0e7a0d" },
+              {}
+            ),
+            h(
+              NCard,
+              {
+                contentStyle: {
+                  textAlign: "center",
+                  padding: 0
+                }
+              },
+              {
+                default: () => row.T_collection_name,
+                cover: () =>
+                  h(
+                    NTag,
+                    {
+                      class: "w-full",
+                      type: "success",
+                      bordered: false,
+                    },
+                    {
+                      default: () => "数据采集",
+                    }
+                  ),
+              }
+            ),
+            h(
+              NIcon,
+              { size: 25, component: ArrowRightIcon, color: "#0e7a0d" },
+              {}
+            ),
+            h(
+              NCard,
+              {
+                contentStyle: {
+                  textAlign: "center",
+                  padding: 0
+                }
+              },
+              {
+                default: () => row.T_reporting_name,
+                cover: () =>
+                  h(
+                    NTag,
+                    {
+                      class: "w-full",
+                      type: "success",
+                      bordered: false,
+                    },
+                    {
+                      default: () => "报告编写",
+                    }
+                  ),
+              }
+            ),
+            h(
+              NIcon,
+              { size: 25, component: ArrowRightIcon, color: "#0e7a0d" },
+              {}
+            ),
+            h(
+              NCard,
+              {
+                contentStyle: {
+                  textAlign: "center",
+                  padding: 0
+                }
+              },
+              {
+                default: () => row.T_collection_name,
+                cover: () =>
+                  h(
+                    NTag,
+                    {
+                      class: "w-full",
+                      type: "success",
+                      bordered: false,
+                    },
+                    {
+                      default: () => "交付审核",
+                    }
+                  ),
+              }
+            ),
+          ],
+        }
       );
     },
   },
@@ -59,8 +180,12 @@ const columns = [
     key: "actions",
     render(row) {
       return h(
-        NSpace,
-        {},
+        NGrid,
+        {
+          xGap: 12,
+          yGap: 12,
+          cols: 4,
+        },
         {
           default: () =>
             [
@@ -74,31 +199,38 @@ const columns = [
               "报告审核",
             ].map((item) =>
               h(
-                NButton,
+                NGridItem,
+                {},
                 {
-                  type: "primary",
-                  size: "small",
-                  onClick: () => {
-                    if (item === "实施方案") {
-                      router.push(`/certificate/${row.T_task_id}`);
-                    } else if (item === "校准证书") {
-                      router.push(`/scheme/${row.T_task_id}`);
-                    } else if (item === "设备管理") {
-                      router.push(`/equipment/${row.Id}`);
-                    } else if (item === "数据来源") {
-                      router.push("/data_source");
-                    } else if (item === "数据编辑") {
-                      router.push("/data_edit");
-                    } else if (item === "数据校验") {
-                      router.push("/data_checkout");
-                    } else if (item === "报告生成") {
-                      router.push("/report_create");
-                    } else {
-                      router.push(`/report_audit/${row.T_task_id}`);
-                    }
-                  },
-                },
-                { default: () => item }
+                  default: () =>
+                    h(
+                      NButton,
+                      {
+                        type: "primary",
+                        size: "small",
+                        onClick: () => {
+                          if (item === "实施方案") {
+                            router.push(`/scheme/${row.T_task_id}`);
+                          } else if (item === "校准证书") {
+                            router.push(`/certificate/${row.T_task_id}`);
+                          } else if (item === "设备管理") {
+                            router.push(`/equipment/${row.Id}`);
+                          } else if (item === "数据来源") {
+                            router.push("/data_source");
+                          } else if (item === "数据编辑") {
+                            router.push("/data_edit");
+                          } else if (item === "数据校验") {
+                            router.push("/data_checkout");
+                          } else if (item === "报告生成") {
+                            router.push(`/report_create/${row.T_task_id}`);
+                          } else {
+                            router.push(`/report_audit/${row.T_task_id}`);
+                          }
+                        },
+                      },
+                      { default: () => item }
+                    ),
+                }
               )
             ),
         }

+ 212 - 90
src/views/project/report/create/index.vue

@@ -1,18 +1,162 @@
 <template>
   <n-space vertical>
-    <n-space justify="space-between">
-      <n-input-group>
-        <n-input style="width: 300px" placeholder="请输入项目名称" />
-        <n-button type="primary"> 搜索 </n-button>
-      </n-input-group>
-      <n-button type="primary" @click="handleAdd">新增</n-button>
-    </n-space>
-    <n-data-table
-      :columns="columns"
-      :data="data"
-      :pagination="pagination"
-      :bordered="false"
-    />
+    <n-page-header @back="() => $router.back()">
+      <template #title> 返回上一级 </template>
+      <template #header>
+        <n-breadcrumb>
+          <n-breadcrumb-item>任务管理1</n-breadcrumb-item>
+          <n-breadcrumb-item>实施方案</n-breadcrumb-item>
+        </n-breadcrumb>
+      </template>
+    </n-page-header>
+    <n-scrollbar style="max-height: 650px">
+      <div class="w-1/2 mx-auto">
+        <n-form
+          ref="formRef"
+          :model="formValue"
+          :rules="rules"
+          label-placement="left"
+          label-width="auto"
+        >
+          <template
+            v-for="item of templateDataList"
+            :key="item.T_VerifyTemplateMap_id"
+          >
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-if="item.T_label === 3"
+            >
+              <n-select
+                v-model:value="formValue.selectedValue"
+                :options="options"
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 4"
+            >
+              <n-select
+                v-model:value="formValue.selectedValue"
+                :options="options"
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-divider v-else-if="item.T_label === 5" />
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 7"
+            >
+              <n-date-picker
+                class="w-full"
+                v-model:formatted-value="formValue.formattedValue"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                type="datetime"
+                clearable
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 9"
+            >
+              <n-date-picker
+                class="w-full"
+                v-model:formatted-value="formValue.formattedValue"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                v-model:value="formValue.formattedValue"
+                type="datetimerange"
+                clearable
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 10"
+            >
+              <n-upload :default-upload="false" list-type="image-card" :max="1">
+                点击上传
+              </n-upload>
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 11"
+            >
+              <n-upload :default-upload="false" list-type="image-card" :max="1">
+                点击上传
+              </n-upload>
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item :label="item.T_name" :path="item.T_field" v-else>
+              <n-input v-model:value="formValue[item.T_field]" />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+          </template>
+        </n-form>
+      </div>
+    </n-scrollbar>
   </n-space>
   <n-modal
     :show-icon="false"
@@ -23,100 +167,78 @@
     negative-text="取消"
     @positive-click="submitCallback"
   >
-    <n-form
-      :model="form"
-      label-placement="left"
-      label-width="auto"
-      require-mark-placement="right-hanging"
-    >
-      <n-form-item label="项目名称" path="inputValue">
-        <n-input v-model:value="form.inputValue" />
-      </n-form-item>
-      <n-form-item label="描述" path="textareaValue">
-        <n-input
-          v-model:value="form.textareaValue"
-          type="textarea"
-          :autosize="{
-            minRows: 3,
-            maxRows: 5,
-          }"
-        />
-      </n-form-item>
-    </n-form>
+    123
   </n-modal>
 </template>
 
 <script setup>
-import { h } from "vue";
-import { NButton, NSpace } from "naive-ui";
+import { getVerifyTemplateMapData } from "@/api";
+import { QuestionCircleOutlined as QuestionIcon } from "@vicons/antd";
 
-const createColumns = ({ goToView }) => {
-  return [
-    {
-      title: "项目名称",
-      key: "no",
-    },
-    {
-      title: "描述",
-      key: "title",
-    },
-    {
-      title: "时间",
-      key: "length",
-    },
-    {
-      title: "操作",
-      key: "actions",
-      render() {
-        return h(
-          NSpace,
-          {},
-          {
-            default: () =>
-              ["删除"].map((item) =>
-                h(
-                  NButton,
-                  {
-                    type: "error",
-                    size: "small",
-                    onClick: () => {},
-                  },
-                  { default: () => item }
-                )
-              ),
-          }
-        );
-      },
-    },
-  ];
-};
+const props = defineProps({
+  taskId: String,
+});
 
-const data = [
-  { no: 3, title: "Wonderwall", length: "4:18" },
-  { no: 4, title: "Don't Look Back in Anger", length: "4:48" },
-  { no: 12, title: "Champagne Supernova", length: "7:27" },
-];
+// 表单信息
+const formValue = reactive({
+  textValue: null,
+  formattedValue: null,
+  selectedValue: null,
+});
+
+// 模板标签数据列表
+const templateDataList = ref([]);
 
-const columns = createColumns({});
-const pagination = ref(false);
+// 	配置选项内容
+const options = [
+  {
+    label: "Everybody's Got Something to Hide Except Me and My Monkey",
+    value: "song0",
+    disabled: true,
+  },
+  {
+    label: "Drive My Car",
+    value: "song1",
+  },
+  {
+    label: "Norwegian Wood",
+    value: "song2",
+  },
+];
 
+// 模态框数据源
 const modal = reactive({
   title: "",
   showModal: false,
 });
 
+// 验证表项的规则
+const rules = {
+  T_name: { required: true, message: "不能为空", trigger: "blur" },
+  time: { required: true, message: "不能为空", trigger: ["blur", "change"] },
+  extent: { required: true, message: "不能为空", trigger: ["blur", "change"] },
+};
+
+// 执行 positive 时执行的回调函数
 const submitCallback = () => {
-  console.log("确定");
+  if (modal.title === "添加") {
+    console.log("add");
+  } else {
+    console.log("edit");
+  }
 };
-const handleAdd = () => {
-  modal.showModal = true;
-  modal.title = "新增";
+
+// 模板标签数据(列表)
+const getVerifyTemplateMapDataList = async () => {
+  const { data: res } = await getVerifyTemplateMapData({
+    T_source: 1,
+    T_task_id: props.taskId,
+    T_VerifyTemplate_id: "rtxF",
+  });
+  templateDataList.value = res.Data;
 };
 
-const form = reactive({
-  inputValue: "",
-  textareaValue: "",
-});
+getVerifyTemplateMapDataList();
 </script>
 
 <style scoped></style>

+ 187 - 105
src/views/project/scheme/index.vue

@@ -4,19 +4,159 @@
       <template #title> 返回上一级 </template>
       <template #header>
         <n-breadcrumb>
-          <n-breadcrumb-item>任务管理</n-breadcrumb-item>
+          <n-breadcrumb-item>任务管理1</n-breadcrumb-item>
           <n-breadcrumb-item>实施方案</n-breadcrumb-item>
         </n-breadcrumb>
       </template>
     </n-page-header>
-    <n-grid x-gap="12" :cols="3">
-      <n-gi>
-        <n-data-table :columns="columns" :data="data" :bordered="false" />
-      </n-gi>
-      <n-gi :span="2">
-        <div class="green" />
-      </n-gi>
-    </n-grid>
+    <n-scrollbar style="max-height: 650px">
+      <div class="w-1/2 mx-auto">
+        <n-form
+          ref="formRef"
+          :model="formValue"
+          :rules="rules"
+          label-placement="left"
+          label-width="auto"
+        >
+          <template
+            v-for="item of templateDataList"
+            :key="item.T_VerifyTemplateMap_id"
+          >
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-if="item.T_label === 3"
+            >
+              <n-select
+                v-model:value="formValue.selectedValue"
+                :options="options"
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 4"
+            >
+              <n-select
+                v-model:value="formValue.selectedValue"
+                :options="options"
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-divider v-else-if="item.T_label === 5" />
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 7"
+            >
+              <n-date-picker
+                class="w-full"
+                v-model:formatted-value="formValue.formattedValue"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                type="datetime"
+                clearable
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 9"
+            >
+              <n-date-picker
+                class="w-full"
+                v-model:formatted-value="formValue.formattedValue"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                v-model:value="formValue.formattedValue"
+                type="datetimerange"
+                clearable
+              />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 10"
+            >
+              <n-upload :default-upload="false" list-type="image-card" :max="1">
+                点击上传
+              </n-upload>
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item
+              required
+              :label="item.T_name"
+              :path="item.T_field"
+              v-else-if="item.T_label === 11"
+            >
+              <n-upload :default-upload="false" list-type="image-card" :max="1">
+                点击上传
+              </n-upload>
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+            <n-form-item :label="item.T_name" :path="item.T_field" v-else>
+              <n-input v-model:value="formValue[item.T_field]" />
+              <n-popover trigger="hover">
+                <template #trigger>
+                  <n-icon size="20" class="ml-3">
+                    <question-icon />
+                  </n-icon>
+                </template>
+                <n-image width="200" :src="item.T_text" />
+              </n-popover>
+            </n-form-item>
+          </template>
+        </n-form>
+      </div>
+    </n-scrollbar>
   </n-space>
   <n-modal
     :show-icon="false"
@@ -27,54 +167,44 @@
     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" />
-      </n-form-item>
-      <n-form-item label="预览" path="T_img" required>
-        <n-space>
-          <template v-if="modal.title === '编辑'">
-            <n-image width="100" :src="formValue.T_img" />
-          </template>
-          <n-upload
-            :default-upload="false"
-            list-type="image-card"
-            :max="1"
-            @change="handleChange"
-          >
-            <template v-if="modal.title === '添加'"> 点击上传 </template>
-            <template v-else> 重新上传 </template>
-          </n-upload>
-        </n-space>
-      </n-form-item>
-    </n-form>
+    123
   </n-modal>
 </template>
 
 <script setup>
-import VuePdfEmbed from "vue-pdf-embed";
-import { getTask, getUpFileTokenData } from "@/api";
-import * as qiniu from "qiniu-js";
-
-const message = useMessage();
+import { getVerifyTemplateMapData } from "@/api";
+import { QuestionCircleOutlined as QuestionIcon } from "@vicons/antd";
 
 const props = defineProps({
   taskId: String,
 });
 
-const pdfRef = ref(null);
-
-// 任务信息
-const taskInfo = ref({});
-
 // 表单信息
-const formValue = reactive({});
+const formValue = reactive({
+  textValue: null,
+  formattedValue: null,
+  selectedValue: null,
+});
+
+// 模板标签数据列表
+const templateDataList = ref([]);
+
+// 	配置选项内容
+const options = [
+  {
+    label: "Everybody's Got Something to Hide Except Me and My Monkey",
+    value: "song0",
+    disabled: true,
+  },
+  {
+    label: "Drive My Car",
+    value: "song1",
+  },
+  {
+    label: "Norwegian Wood",
+    value: "song2",
+  },
+];
 
 // 模态框数据源
 const modal = reactive({
@@ -85,37 +215,8 @@ const modal = reactive({
 // 验证表项的规则
 const rules = {
   T_name: { required: true, message: "不能为空", trigger: "blur" },
-};
-
-// 打印pdf
-const onPrint = () => {
-  pdfRef.value.print();
-};
-
-// 组件状态变化的回调
-const handleChange = async (options) => {
-  const token = await getUpFileToken(options.file.type.split("/")[1]);
-  const observable = qiniu.upload(
-    options.file.file,
-    options.file.name,
-    token,
-    {},
-    {
-      useCdnDomain: true,
-    }
-  );
-  observable.subscribe({
-    next: (result) => {
-      // 主要用来展示进度
-      console.warn(result);
-    },
-    error: () => {
-      message.error("上传图片失败");
-    },
-    complete: (res) => {
-      formValue.T_img = res.key;
-    },
-  });
+  time: { required: true, message: "不能为空", trigger: ["blur", "change"] },
+  extent: { required: true, message: "不能为空", trigger: ["blur", "change"] },
 };
 
 // 执行 positive 时执行的回调函数
@@ -127,36 +228,17 @@ const submitCallback = () => {
   }
 };
 
-// 显示上传
-const showUploadModal = () => {};
-
-// 获取上传token
-const getUpFileToken = async () => {
-  const { data: res } = await getUpFileTokenData({
-    T_suffix: "pdf",
-  });
-  return res.Data;
-};
-
-// 任务(获取)
-const getTaskInfo = async () => {
-  const { data: res } = await getTask({
+// 模板标签数据(列表)
+const getVerifyTemplateMapDataList = async () => {
+  const { data: res } = await getVerifyTemplateMapData({
+    T_source: 1,
     T_task_id: props.taskId,
+    T_VerifyTemplate_id: "rtxF",
   });
-  taskInfo.value = res.Data;
+  templateDataList.value = res.Data;
 };
 
-getUpFileToken();
-getTaskInfo();
+getVerifyTemplateMapDataList();
 </script>
 
-<style scoped>
-.light-green {
-  height: 108px;
-  background-color: rgba(0, 128, 0, 0.12);
-}
-.green {
-  height: 108px;
-  background-color: rgba(0, 128, 0, 0.24);
-}
-</style>
+<style scoped></style>