From 1f96f089eb3546c682313d29513be04ac72e2de5 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 31 十月 2023 16:21:08 +0800
Subject: [PATCH] Merge branch 'master' of ssh://114.215.109.124:29418/grid-management-vue

---
 src/views/overlay-clue/report/components/ClueReportConclusion.vue |  191 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 191 insertions(+), 0 deletions(-)

diff --git a/src/views/overlay-clue/report/components/ClueReportConclusion.vue b/src/views/overlay-clue/report/components/ClueReportConclusion.vue
new file mode 100644
index 0000000..31634b2
--- /dev/null
+++ b/src/views/overlay-clue/report/components/ClueReportConclusion.vue
@@ -0,0 +1,191 @@
+<template>
+  <div class="fy-h2">绾跨储缁撹</div>
+  <DescriptionsList v-if="conclusion">
+    <!-- <template #extra>
+      <el-button
+        v-if="conclusion"
+        type="warning"
+        size="small"
+        plain
+        icon="Upload"
+        @click="pushConclusion"
+        :disabled="pushing ? true : conclusion.ccUploaded"
+        >{{ pushing ? '鎺ㄩ�佷腑' : pushText }}</el-button
+      >
+    </template> -->
+    <DescriptionsListItem
+      label="闂绫诲瀷"
+      :content="conclusion.ccQuestionType"
+    />
+    <DescriptionsListItem
+      label="绾跨储缁撹"
+      :content="conclusion.ccConclusion"
+    />
+    <DescriptionsListItem
+      label="璇︾粏鎻忚堪"
+      :content="conclusion.ccDetails"
+    />
+  </DescriptionsList>
+  <div v-else class="fy-dashed-border">
+    <el-empty :image-size="50" description="绾跨储缁撹鏈笂浼�">
+      <el-button type="primary" @click="openDialog"
+        >鍙嶉涓婃姤</el-button
+      >
+    </el-empty>
+  </div>
+  <el-dialog
+    v-model="dialogShow"
+    width="50%"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+  >
+    <template #header>
+      <span> 鍙嶉缁撹</span>
+    </template>
+    <el-form
+      label-width="120px"
+      label-position="left"
+      :rules="rules"
+      :model="formObj"
+      ref="formRef"
+    >
+      <el-form-item label="闂绫诲瀷" prop="ccQuestionType">
+        <el-radio-group v-model="formObj.ccQuestionType">
+          <el-radio label="鏈夐棶棰�">鏈夐棶棰�</el-radio>
+          <el-radio label="鏃犻棶棰�">鏃犻棶棰�</el-radio>
+          <el-radio label="宸茶В鍐�">宸茶В鍐�</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="绾跨储缁撹" prop="ccConclusion">
+        <el-input v-model="formObj.ccConclusion"></el-input>
+      </el-form-item>
+      <el-form-item label="璇︾粏鎻忚堪" prop="ccDetails">
+        <el-input
+          v-model="formObj.ccDetails"
+          type="textarea"
+          placeholder="璇疯緭鍏ヨ鎯�"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button @click="onCancel">鍙栨秷</el-button>
+      <el-button type="primary" :loading="loading" @click="onSubmit"
+        >纭畾</el-button
+      >
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import { reactive, ref, watch, computed } from 'vue';
+import { useFormConfirm } from '@/composables/formConfirm';
+import clueConclusionApi from '@/api/clue/clueConclusionApi';
+
+const props = defineProps({
+  clueId: Number
+});
+
+watch(
+  () => props.clueId,
+  () => {
+    getConclusion();
+  }
+);
+
+// 鎺ㄩ�佺姸鎬�
+const pushing = ref(false);
+
+// 绾跨储缁撹
+const conclusion = ref({});
+
+// 涓婃姤寮瑰嚭妗�
+const dialogShow = ref(false);
+const { formObj, formRef, onSubmit, onCancel, clear } =
+  useFormConfirm({
+    submit: {
+      do: submit
+    },
+    cancel: {
+      do: cancel
+    }
+  });
+const loading = ref(false);
+// 琛ㄥ崟妫�鏌ヨ鍒�
+const rules = reactive({
+  ccQuestionType: [
+    {
+      required: true,
+      message: '闂绫诲瀷涓嶈兘涓虹┖',
+      trigger: 'change'
+    }
+  ],
+  ccConclusion: [
+    {
+      required: true,
+      message: '绾跨储缁撹涓嶈兘涓虹┖',
+      trigger: 'blur'
+    }
+  ],
+  ccDetails: [
+    {
+      required: true,
+      message: '璇︾粏鎻忚堪涓嶈兘涓虹┖',
+      trigger: 'blur'
+    }
+  ]
+});
+
+// 鎵撳紑涓婃姤鍙嶉瀵硅瘽妗�
+function openDialog() {
+  dialogShow.value = true;
+}
+
+function submit() {
+  formObj.value.cid = props.clueId;
+  return uploadConclusion();
+}
+function cancel() {
+  dialogShow.value = false;
+}
+
+/**
+ * 涓婁紶绾跨储缁撹
+ */
+function uploadConclusion() {
+  loading.value = true;
+  return clueConclusionApi
+    .uploadConclusion(formObj.value)
+    .then(() => {
+      dialogShow.value = false;
+      clear();
+      getConclusion();
+    })
+    .finally(() => {
+      loading.value = false;
+    });
+}
+
+/**
+ * 鑾峰彇绾跨储缁撹
+ */
+function getConclusion() {
+  clueConclusionApi.getConclusion(props.clueId).then((res) => {
+    conclusion.value = res;
+  });
+}
+
+function pushConclusion() {
+  clueConclusionApi
+    .pushConclusion([conclusion.value.ccId])
+    .then(() => {
+      pushing.value = true;
+    });
+}
+
+const pushText = computed(() => {
+  return conclusion.value.ccUploaded ? '宸叉帹閫�' : '鎺ㄩ�侀棶棰�';
+});
+</script>
+<style scoped>
+
+</style>

--
Gitblit v1.9.3