From 056ea576d820729878ffd62cd54cd7598e72d07e Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 29 七月 2025 16:07:31 +0800 Subject: [PATCH] 新增图片超出限制,无法选中功能 --- src/views/overlay-clue/report/ClueReport.vue | 156 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 146 insertions(+), 10 deletions(-) diff --git a/src/views/overlay-clue/report/ClueReport.vue b/src/views/overlay-clue/report/ClueReport.vue index 97f98d4..b952e9b 100644 --- a/src/views/overlay-clue/report/ClueReport.vue +++ b/src/views/overlay-clue/report/ClueReport.vue @@ -2,11 +2,13 @@ <!-- 娓呭崟璇︽儏 --> <CloseButton v-show="show" @close="closeEdit"> <el-button + v-if="!isInternal" class="push-btn" :type="clueData.cuploaded ? 'success' : 'danger'" @click="pushCheck" :disabled="clueData.cuploaded" - ><div class="flex-col"> + > + <div class="flex-col"> <template v-if="clueData.cuploaded"> <el-icon><Check /></el-icon> <div>宸�</div> @@ -20,8 +22,54 @@ <div>鍙�</div> <div>棣�</div> </template> - </div></el-button + </div> + </el-button> + <el-button + v-else-if="clueTask" + class="push-btn" + :type="clueTask.finished ? 'success' : 'danger'" + @click="finishTask" + :disabled="clueTask.finished" > + <div class="flex-col"> + <template v-if="clueTask.finished"> + <el-icon><Check /></el-icon> + <div>浠�</div> + <div>鍔�</div> + <div>瀹�</div> + <div>鎴�</div> + </template> + <template v-else> + <el-icon><Upload /></el-icon> + <div>缁�</div> + <div>鏉�</div> + <div>浠�</div> + <div>鍔�</div> + </template> + </div> + </el-button> + <el-button + class="task-btn" + :type="clueTask ? 'success' : 'danger'" + @click="publishTask" + > + <div class="flex-col"> + <template v-if="clueTask"> + <el-icon><Check /></el-icon> + <div>鏌�</div> + <div>鐪�</div> + <div>浠�</div> + <div>鍔�</div> + </template> + <template v-else> + <el-icon><Upload /></el-icon> + <div>鍙�</div> + <div>甯�</div> + <div>浠�</div> + <div>鍔�</div> + </template> + </div> + </el-button> <div class="fy-card"> <div class="fy-h1">绾跨储鍙嶉</div> <el-scrollbar height="80vh" class="p-h-1"> @@ -29,26 +77,41 @@ <ClueReportConclusion :clueId="clueData.cid" ></ClueReportConclusion> - <ClueReportQuestion - :clueId="clueData.cid" - ></ClueReportQuestion> + <ClueReportQuestion :clueData="clueData"></ClueReportQuestion> </el-scrollbar> </div> </CloseButton> + <ClueTaskEdit + v-model="clueTaskDialog" + :clue-task="clueTask" + :clue-data="clueData" + :create="isCreateMode" + @on-submit="handelClueTaskEdit" + ></ClueTaskEdit> </template> <script> import ClueReportClue from './components/ClueReportClue.vue'; import ClueReportConclusion from './components/ClueReportConclusion.vue'; import ClueReportQuestion from './components/ClueReportQuestion.vue'; +import ClueTaskEdit from '@/views/overlay-clue/task/ClueTaskEdit.vue'; + import { useMessageBoxTip } from '@/composables/messageBox'; -import clueApi from "@/api/clue/clueApi"; +import clueApi from '@/api/clue/clueApi'; +import clueTaskApi from '@/api/clue/clueTaskApi'; export default { + inject: { + // 鏄惁鏄唴閮ㄧ嚎绱㈢浉鍏虫搷浣� + isInternal: { + default: false + } + }, components: { ClueReportClue, ClueReportConclusion, - ClueReportQuestion + ClueReportQuestion, + ClueTaskEdit }, props: { clueData: { @@ -59,9 +122,20 @@ }, show: Boolean }, - emits: ['update:show'], + emits: ['update:show', 'pushed', 'onClueTaskChange'], data() { - return {}; + return { + clueTask: undefined, + clueTaskDialog: false, + isCreateMode: true + }; + }, + watch: { + clueData(nV, oV) { + if (nV && nV != oV) { + this.getClueTask(); + } + } }, methods: { closeEdit() { @@ -77,7 +151,48 @@ }); }, pushClue() { - return clueApi.pushClue(this.clueData.cid) + return clueApi.pushClue(this.clueData.cid).then((res) => { + this.finishTask(); + this.$emit('pushed', res); + }); + }, + + getClueTask() { + clueTaskApi + .fetchClueTask({ + clueId: this.clueData.cid, + internalTask: this.isInternal + }) + .then((res) => { + this.isCreateMode = res.data.length == 0; + if (res.data.length > 0) { + this.clueTask = res.data[0]; + } else { + this.clueTask = undefined; + } + }); + }, + publishTask() { + this.clueTaskDialog = true; + }, + handelClueTaskEdit() { + this.getClueTask(); + this.$emit('onClueTaskChange'); + }, + finishTask() { + useMessageBoxTip({ + confirmMsg: '鏄惁缁撴潫绾跨储浠诲姟锛�', + confirmTitle: '缁撴潫绾跨储浠诲姟', + onConfirm: () => { + return clueTaskApi + .finishClueTask(this.clueTask.guid) + .then((res) => { + if (res.data == 1) { + this.clueTask.finished = true; + } + }); + } + }); } } }; @@ -104,4 +219,25 @@ border-bottom-right-radius: 0px; /* box-shadow: var(--el-box-shadow-light); */ } + +.task-btn { + position: absolute; + z-index: 1; + bottom: 2rem; + left: -2.5rem; + width: 2.5rem; + height: initial; + margin: initial; + display: flex; + flex-direction: column; + align-items: center; + /* background-color: white; */ + /* border-color: white; */ + /* border-top: 1px solid; + border-left: 1px solid; + border-bottom: 1px solid; */ + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + /* box-shadow: var(--el-box-shadow-light); */ +} </style> -- Gitblit v1.9.3