From c6a61bf9bf4d1ae57098aa26dcf2448ce6bb80e4 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 05 九月 2025 10:16:43 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/record/detailpage/index.vue | 1251 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 861 insertions(+), 390 deletions(-)
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index e78cdd6..426e933 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -27,6 +27,23 @@
鍓嶅線CDSS鏌ヨ
</el-link>
</div>
+ <div class="merge-controls" v-if="Whetherall">
+ <el-button
+ type="primary"
+ @click="toggleMergeMode"
+ :disabled="selectedServices.length < 2"
+ >
+ {{ isMergeMode ? "鍙栨秷鍚堝苟" : "鍚堝苟缂栬緫闂嵎" }}
+ </el-button>
+ <el-button
+ v-if="isMergeMode"
+ type="success"
+ @click="openMergeDialog"
+ :disabled="selectedServices.length < 2"
+ >
+ 寮�濮嬪悎骞� (宸查�� {{ selectedServices.length }} 涓湇鍔�)
+ </el-button>
+ </div>
</div>
<!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> -->
</div>
@@ -36,7 +53,14 @@
:data="logsheetlist"
:row-class-name="tableRowClassName"
style="width: 100%"
+ @selection-change="handleSelectionChange"
>
+ <el-table-column
+ type="selection"
+ width="55"
+ :selectable="checkSelectable"
+ v-if="Whetherall"
+ ></el-table-column>
<el-table-column
prop="sendname"
align="center"
@@ -213,94 +237,427 @@
</el-table>
</div>
</div>
- <div class="Followuserinfos">
- <div>
- <el-form
- ref="userform"
- :model="form"
- :rules="userrules"
- label-width="120px"
- >
+ <!-- 娣诲姞鍚堝苟缂栬緫瀵硅瘽妗� -->
+ <el-dialog
+ title="鍚堝苟缂栬緫闂嵎"
+ :visible.sync="mergeDialogVisible"
+ width="80%"
+ top="5vh"
+ v-dialogDrag
+ >
+ <MergeAndModify
+ v-if="mergeDialogVisible"
+ :selected-services="selectedServices"
+ :patid="patid"
+ @save="handleMergeSave"
+ @cancel="mergeDialogVisible = false"
+ />
+ </el-dialog>
+ <div class="action-container">
+ <div class="call-action">
+ <div class="call-container">
+ <!-- <div class="call-header">
+ <h2>涓�閿懠鍙姛鑳�</h2>
+ </div> -->
+
<div class="headline">
- <div>浜哄伐澶勭悊</div>
- <el-row :gutter="20">
- <el-col :span="8"
- ><el-form-item label="鑱旂郴鐢佃瘽">
- <el-input
- placeholder="鑱旂郴鐢佃瘽缂哄け"
- v-model="userform.telcode"
- >
- <el-button
- slot="append"
- icon="el-icon-phone"
- @click="handleCall(userform.telcode, 'tel')"
- :disabled="!isValidPhone(userform.telcode)"
- ></el-button
- ></el-input> </el-form-item
- ></el-col>
- <el-col :span="8"
- ><el-form-item label="鑱旂郴浜虹數璇�">
- <el-input
- placeholder="鑱旂郴浜虹數璇濈己澶�"
- v-model="userform.relativetelcode"
- >
- <el-button
- slot="append"
- icon="el-icon-phone"
- @click="handleCall(userform.relativetelcode, 'relative')"
- :disabled="!isValidPhone(userform.relativetelcode)"
- ></el-button
- ></el-input> </el-form-item
- ></el-col>
- <el-col :span="8"
- ><el-form-item label="鑱旂郴浜哄叧绯�">
- <el-input
- placeholder="鑱旂郴浜哄叧绯荤己澶�"
- v-model="userform.relation"
- ></el-input> </el-form-item
- ></el-col>
- </el-row>
- <div style="margin-left: 30px">
- <el-button type="primary" plain @click="Editsingletasksonyic('')"
- >淇濆瓨鏈嶅姟</el-button
- >
- </div>
+ <div>闅忚鍐呭</div>
</div>
+ <div>
+ <el-tabs v-model="activeName" type="border-card">
+ <el-tab-pane name="wj">
+ <span class="mulsz" slot="label"
+ ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
+ >
+ <div class="CONTENT">
+ <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
- <el-form-item label="闅忚璁板綍">
- <el-input type="textarea" v-model="form.remark"></el-input>
- </el-form-item>
+ <div class="preview-left" v-if="!Voicetype">
+ <div
+ class="topic-dev"
+ v-for="(item, index) in tableDatatop"
+ :key="item.id"
+ >
+ <!-- 鍗曢�� -->
+ <div
+ :class="
+ item.isabnormal
+ ? 'scriptTopic-isabnormal'
+ : 'scriptTopic-dev'
+ "
+ :key="index"
+ v-if="item.scriptType == 1 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕鍗曢�塢<span>{{
+ item.scriptContent
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-radio-group
+ v-model="item.scriptResult"
+ @change="
+ handleOptionChange(
+ $event,
+ index,
+ item.svyLibTemplateTargetoptions,
+ item
+ )
+ "
+ >
+ <el-radio
+ v-for="(
+ items, indexs
+ ) in item.svyLibTemplateTargetoptions"
+ :class="items.isabnormal ? 'red-star' : ''"
+ :key="indexs"
+ :label="items.optioncontent"
+ >{{ items.optioncontent }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ <div
+ v-if="item.showAppendInput||item.answerps"
+ class="append-input-container"
+ >
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+ v-model="item.answerps"
+ clearable
+ ></el-input>
+ </div>
+ <div v-show="item.prompt">
+ <el-alert :title="item.prompt" type="warning">
+ </el-alert>
+ </div>
+ </div>
+ <!-- 澶氶�� -->
+ <div
+ :class="
+ item.isabnormal
+ ? 'scriptTopic-isabnormal'
+ : 'scriptTopic-dev'
+ "
+ :key="index"
+ v-if="item.scriptType == 2 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕澶氶�塢<span>{{
+ item.scriptContent
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-checkbox-group
+ v-model="item.scriptResult"
+ @change="updateScore($event, index, item)"
+ >
+ <el-checkbox
+ :class="items.isabnormal ? 'red-star' : ''"
+ @change="$forceUpdate()"
+ v-for="(
+ items, indexs
+ ) in item.svyLibTemplateTargetoptions"
+ :key="indexs"
+ :label="items.optioncontent"
+ >
+ {{ items.optioncontent }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </div>
+ <div v-show="item.prompt && item.scriptResult[0]">
+ <el-alert :title="item.prompt" type="warning">
+ </el-alert>
+ </div>
+ </div>
+ <!-- 濉┖ -->
+ <div
+ class="scriptTopic-dev"
+ :key="index"
+ v-if="item.scriptType == 4 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕闂瓟]<span>{{
+ item.scriptContent
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.scriptResult"
+ clearable
+ >
+ </el-input>
+ </div>
+ </div>
+ </div>
+ </div>
- <el-form-item label="澶勭悊鎰忚">
- <div>
- <el-button plain type="warning" @click="Editsingletaskson('1')"
- >鏆備笉澶勭悊</el-button
- >
- <el-button plain type="success" @click="Editsingletaskson('2')"
- >鐥呮儏绋冲畾</el-button
- >
- <el-button plain type="primary" @click="Editsingletaskson('3')"
- >閫氱煡灏辫瘖</el-button
- >
- <!-- <el-button type="danger" @click="Editsingletaskson('4')"
- >澶辫</el-button
- > -->
- <el-button plain type="info" @click="Editsingletaskson('5')"
- >涓績闅忚</el-button
- >
- <el-button
- type="primary"
- round
- v-if="this.form.isVisitAgain != 2"
- @click="sendAgain()"
- >鍐嶆闅忚</el-button
- >
- </div>
- </el-form-item>
- </el-form>
- <el-collapse>
- <el-collapse-item title="鏌ョ湅褰撳墠鎮h�呬俊鎭�" name="1">
+ <div class="preview-left" v-else>
+ <div
+ class="topic-dev"
+ v-for="(item, index) in tableDatatop"
+ :key="item.id"
+ >
+ <div v-if="item.targetvalue">
+ <div class="dev-text">
+ {{ index + 1 }}銆乕鍗曢�塢<span>{{
+ item.questiontext
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-radio-group
+ v-model="item.matchedtext"
+ @change="
+ handleOptionChange(
+ $event,
+ index,
+ item.ivrTaskScriptTargetoptionList,
+ item
+ )
+ "
+ >
+ <el-radio
+ v-for="(items, index) in item.scriptResult"
+ :key="items"
+ :label="items"
+ >{{ items }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ <div v-show="item.prompt">
+ <el-alert :title="item.prompt" type="warning">
+ </el-alert>
+ </div>
+ </div>
+
+ <div class="scriptTopic-dev" :key="index" v-else>
+ <div class="dev-text">
+ {{ index + 1 }}銆乕闂瓟]<span>{{
+ item.questiontext
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.matchedtext"
+ clearable
+ >
+ </el-input>
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-button
+ v-if="Voicetype"
+ type="primary"
+ @click="yuyingetdetail"
+ >淇濆瓨鏈嶅姟璇︽儏</el-button
+ >
+ <el-button v-else type="primary" @click="getdetail"
+ >淇濆瓨鏈嶅姟璇︽儏</el-button
+ >
+ </div>
+ </el-tab-pane>
+
+ <el-tab-pane name="yy">
+ <span class="mulsz" slot="label"
+ ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
+ >
+ <div class="borderdiv">
+ <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+ <div
+ style="
+ display: flex;
+ text-align: center;
+ align-items: center;
+ color: #59a0f0;
+ "
+ >
+ 瀹屾暣璇煶锛�
+ <mini-audio
+ :audio-source="
+ voice ? voice : '@assets/order/example.mp3'
+ "
+ ></mini-audio>
+ </div>
+ <div class="preview-left">
+ <div v-for="item in voiceDatatop">
+ <div class="leftside">
+ <i class="el-icon-phone-outline"></i
+ ><span>{{ item.questiontext }}</span>
+ </div>
+ <div class="offside">
+ <i class="el-icon-user"></i>
+ <div class="offside-value">
+ <el-input
+ type="textarea"
+ :autosize="{ minRows: 1 }"
+ v-model="item.asrtext"
+ ></el-input>
+
+ <div>
+ <mini-audio
+ :audio-source="
+ item.questionvoice
+ ? item.questionvoice
+ : '@assets/order/example.mp3'
+ "
+ ></mini-audio>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-button
+ v-if="Voicetype"
+ type="primary"
+ @click="yuyingetdetail"
+ >淇濆瓨闅忚璇︽儏</el-button
+ >
+ <el-button v-else type="primary" @click="getdetail"
+ >淇濆瓨闅忚璇︽儏</el-button
+ >
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+ </div>
+ </div>
+ <div class="manual-action">
+ <div class="Followuserinfos">
+ <div>
+ <el-form
+ ref="userform"
+ :model="form"
+ :rules="userrules"
+ label-width="120px"
+ >
+ <div class="headline">
+ <div>浜哄伐澶勭悊</div>
+ <div style="margin: 0 30px">
+ <el-button
+ type="primary"
+ plain
+ @click="Editsingletasksonyic('')"
+ >淇濆瓨鍩虹淇℃伅</el-button
+ >
+ </div>
+ <div>
+ <el-button
+ type="primary"
+ round
+ v-if="this.form.isVisitAgain != 2"
+ @click="sendAgain()"
+ >鍐嶆闅忚</el-button
+ >
+ </div>
+ </div>
+ <el-row>
+ <el-col :span="14"
+ ><el-form-item label="鑱旂郴鐢佃瘽">
+ <el-input
+ placeholder="鑱旂郴鐢佃瘽缂哄け"
+ v-model="userform.telcode"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-phone"
+ @click="handleCall(userform.telcode, 'tel')"
+ :disabled="!isValidPhone(userform.telcode)"
+ ></el-button
+ ></el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="14"
+ ><el-form-item label="鑱旂郴浜虹數璇�">
+ <el-input
+ placeholder="鑱旂郴浜虹數璇濈己澶�"
+ v-model="userform.relativetelcode"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-phone"
+ @click="
+ handleCall(userform.relativetelcode, 'relative')
+ "
+ :disabled="!isValidPhone(userform.relativetelcode)"
+ ></el-button
+ ></el-input> </el-form-item
+ ></el-col>
+ <el-col :span="10"
+ ><el-form-item label="鑱旂郴浜哄叧绯�">
+ <el-input
+ placeholder="鑱旂郴浜哄叧绯荤己澶�"
+ v-model="userform.relation"
+ ></el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <div class="call-controls">
+ <CallButton
+ ref="callButton"
+ :phoneNumber="currentPhoneNumber"
+ style="display: none"
+ />
+
+ <div v-if="callStatus === 'connected'" class="hangup-btn">
+ <el-button
+ type="danger"
+ icon="el-icon-phone"
+ @click="endCurrentCall"
+ :loading="isEndingCall"
+ >
+ 鎸傛柇鐢佃瘽
+ </el-button>
+ </div>
+ <div class="call-status" v-if="callStatus !== 'idle'">
+ <el-alert
+ :title="callStatusText"
+ :type="callStatusType"
+ :closable="false"
+ show-icon
+ />
+ </div>
+ </div>
+ <el-form-item label="闅忚璁板綍">
+ <el-input type="textarea" v-model="form.remark"></el-input>
+ </el-form-item>
+
+ <el-form-item label="澶勭悊鎰忚">
+ <div>
+ <el-button
+ plain
+ type="warning"
+ @click="Editsingletaskson('1')"
+ >鏆備笉澶勭悊</el-button
+ >
+ <el-button
+ plain
+ type="success"
+ @click="Editsingletaskson('2')"
+ >鐥呮儏绋冲畾</el-button
+ >
+ <el-button
+ plain
+ type="primary"
+ @click="Editsingletaskson('3')"
+ >閫氱煡灏辫瘖</el-button
+ >
+ <el-button plain type="info" @click="Editsingletaskson('5')"
+ >涓績闅忚</el-button
+ >
+ </div>
+ </el-form-item>
+ </el-form>
+
<div class="detailed">
+ <h3>鎮h�呮。妗堜俊鎭�</h3>
<el-form ref="userform" :model="userform" label-width="100px">
<el-row :gutter="20">
<el-col :span="12">
@@ -350,261 +707,13 @@
/> </el-form-item
></el-col>
</el-row>
- <!-- <el-row :gutter="20">
- <el-col :span="24">
- <el-form-item label="鏍囩" prop="desc">
- <div class="xinz-inf">
- <el-tag
- :key="tag.tagname"
- type="success"
- v-for="tag in dynamicTags"
- :disable-transitions="false"
- >
- {{ tag.tagname }}
- </el-tag>
- </div>
- </el-form-item>
- </el-col>
- </el-row> -->
</el-form>
</div>
- </el-collapse-item>
- </el-collapse>
+ </div>
+ </div>
</div>
</div>
- <div>
- <h2>涓�閿懠鍙姛鑳�</h2>
- <CallButton
- ref="callButton"
- :phoneNumber="currentPhoneNumber"
- style="display: none"
- />
- </div>
- <div>
- <el-tabs v-model="activeName" type="border-card">
- <el-tab-pane name="wj">
- <span class="mulsz" slot="label"
- ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
- >
- <div class="CONTENT">
- <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
- <div class="preview-left" v-if="!Voicetype">
- <div
- class="topic-dev"
- v-for="(item, index) in tableDatatop"
- :key="item.id"
- >
- <!-- 鍗曢�� -->
- <div
- :class="
- item.isabnormal
- ? 'scriptTopic-isabnormal'
- : 'scriptTopic-dev'
- "
- :key="index"
- v-if="item.scriptType == 1 && !item.astrict"
- >
- <div class="dev-text">
- {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
- </div>
- <div class="dev-xx">
- <el-radio-group
- v-model="item.scriptResult"
- @change="
- handleOptionChange(
- $event,
- index,
- item.svyLibTemplateTargetoptions
- )
- "
- >
- <el-radio
- v-for="(
- items, indexs
- ) in item.svyLibTemplateTargetoptions"
- :class="items.isabnormal ? 'red-star' : ''"
- :key="indexs"
- :label="items.optioncontent"
- >{{ items.optioncontent }}</el-radio
- >
- </el-radio-group>
- </div>
- <div v-show="item.prompt">
- <el-alert :title="item.prompt" type="warning"> </el-alert>
- </div>
- </div>
- <!-- 澶氶�� -->
- <div
- :class="
- item.isabnormal
- ? 'scriptTopic-isabnormal'
- : 'scriptTopic-dev'
- "
- :key="index"
- v-if="item.scriptType == 2 && !item.astrict"
- >
- <div class="dev-text">
- {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
- </div>
- <div class="dev-xx">
- <el-checkbox-group
- v-model="item.scriptResult"
- @change="updateScore($event, index, item)"
- >
- <el-checkbox
- :class="items.isabnormal ? 'red-star' : ''"
- @change="$forceUpdate()"
- v-for="(
- items, indexs
- ) in item.svyLibTemplateTargetoptions"
- :key="indexs"
- :label="items.optioncontent"
- >
- {{ items.optioncontent }}
- </el-checkbox>
- </el-checkbox-group>
- </div>
- <div v-show="item.prompt && item.scriptResult[0]">
- <el-alert :title="item.prompt" type="warning"> </el-alert>
- </div>
- </div>
- <!-- 濉┖ -->
- <div
- class="scriptTopic-dev"
- :key="index"
- v-if="item.scriptType == 4 && !item.astrict"
- >
- <div class="dev-text">
- {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span>
- </div>
- <div class="dev-xx">
- <el-input
- type="textarea"
- :rows="2"
- placeholder="璇疯緭鍏ョ瓟妗�"
- v-model="item.scriptResult"
- clearable
- >
- </el-input>
- </div>
- </div>
- </div>
- </div>
-
- <div class="preview-left" v-else>
- <div
- class="topic-dev"
- v-for="(item, index) in tableDatatop"
- :key="item.id"
- >
- <div v-if="item.targetvalue">
- <div class="dev-text">
- {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.questiontext }}</span>
- </div>
- <div class="dev-xx">
- <el-radio-group
- v-model="item.matchedtext"
- @change="handleOptionChange($event, index, item)"
- >
- <el-radio
- v-for="(items, index) in item.scriptResult"
- :key="items"
- :label="items"
- >{{ items }}</el-radio
- >
- </el-radio-group>
- </div>
- <div v-show="item.prompt">
- <el-alert :title="item.prompt" type="warning"> </el-alert>
- </div>
- </div>
-
- <div class="scriptTopic-dev" :key="index" v-else>
- <div class="dev-text">
- {{ index + 1 }}銆乕闂瓟]<span>{{ item.questiontext }}</span>
- </div>
- <div class="dev-xx">
- <el-input
- type="textarea"
- :rows="2"
- placeholder="璇疯緭鍏ョ瓟妗�"
- v-model="item.matchedtext"
- clearable
- >
- </el-input>
- </div>
- </div>
- </div>
- </div>
- <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
- >淇濆瓨鏈嶅姟璇︽儏</el-button
- >
- <el-button v-else type="primary" @click="getdetail"
- >淇濆瓨鏈嶅姟璇︽儏</el-button
- >
- </div>
- </el-tab-pane>
-
- <el-tab-pane name="yy">
- <span class="mulsz" slot="label"
- ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
- >
- <div class="borderdiv">
- <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
- <div
- style="
- display: flex;
- text-align: center;
- align-items: center;
- color: #59a0f0;
- "
- >
- 瀹屾暣璇煶锛�
- <mini-audio
- :audio-source="
- voice ? voice : 'https://example.com/example.mp3'
- "
- ></mini-audio>
- </div>
- <div class="preview-left">
- <div v-for="item in voiceDatatop">
- <div class="leftside">
- <i class="el-icon-phone-outline"></i
- ><span>{{ item.questiontext }}</span>
- </div>
- <div class="offside">
- <i class="el-icon-user"></i>
- <div class="offside-value">
- <el-input
- type="textarea"
- :autosize="{ minRows: 1 }"
- v-model="item.asrtext"
- ></el-input>
-
- <div>
- <mini-audio
- :audio-source="
- item.questionvoice
- ? item.questionvoice
- : 'https://example.com/example.mp3'
- "
- ></mini-audio>
- </div>
- </div>
- </div>
- </div>
- </div>
- <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
- >淇濆瓨闅忚璇︽儏</el-button
- >
- <el-button v-else type="primary" @click="getdetail"
- >淇濆瓨闅忚璇︽儏</el-button
- >
- </div>
- </el-tab-pane>
- </el-tabs>
- </div>
<el-dialog
title="鎮h�呭啀娆¢殢璁�"
v-dialogDrags
@@ -727,6 +836,7 @@
:picker-options="pickerOptions"
align="right"
v-model="form.date1"
+ class="custom-disabled"
></el-date-picker>
</el-form-item>
</el-col>
@@ -772,9 +882,11 @@
listcontactinformation,
} from "@/api/patient/homepage";
import CallButton from "@/components/CallButton";
+import MergeAndModify from "./MergeAndModify.vue";
export default {
components: {
CallButton,
+ MergeAndModify,
},
dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
@@ -795,6 +907,10 @@
userid: "",
currentPhoneNumber: "",
callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
+ // 宸叉湁鏁版嵁...
+ callStatus: "idle", // idle, calling, connected, ended, failed
+ isEndingCall: false,
+ currentCall: null, // 褰撳墠閫氳瘽瀵硅薄
input: "浠婂ぉ韬綋杩樹笉閿�",
radio: "2",
taskname: "",
@@ -807,6 +923,9 @@
tableDatatop: [], //棰樼洰琛�
voiceDatatop: [], //棰樼洰琛�
dynamicTags: [],
+ isMergeMode: false,
+ mergeDialogVisible: false,
+ selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛�
zcrules: {
resource: [
{ required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
@@ -852,6 +971,10 @@
},
},
pickerOptions: {
+ disabledDate(time) {
+ // 绂佺敤浠婂ぉ鍙婁箣鍓嶇殑鏃ユ湡
+ return time.getTime() < Date.now() - 24 * 60 * 60 * 1000;
+ },
shortcuts: [
{
text: "涓冨ぉ鍚�",
@@ -943,7 +1066,28 @@
patid: null,
};
},
-
+ computed: {
+ callStatusText() {
+ const statusMap = {
+ idle: "鍑嗗鍛煎彨",
+ calling: `姝e湪鍛煎彨 ${this.currentPhoneNumber}...`,
+ connected: `宸叉帴閫� ${this.currentPhoneNumber}`,
+ ended: "閫氳瘽宸茬粨鏉�",
+ failed: "鍛煎彨澶辫触",
+ };
+ return statusMap[this.callStatus];
+ },
+ callStatusType() {
+ const typeMap = {
+ idle: "info",
+ calling: "warning",
+ connected: "success",
+ ended: "info",
+ failed: "error",
+ };
+ return typeMap[this.callStatus];
+ },
+ },
created() {
this.taskid = this.$route.query.taskid;
this.id = this.$route.query.id;
@@ -1016,7 +1160,6 @@
const queryParams = {
pid: Number(this.patid),
allhosp: "0",
- pageNum: 1,
};
// 鎮h�呭熀纭�淇℃伅
messagelistpatient(queryParams).then((response) => {
@@ -1139,6 +1282,7 @@
scriptid: item.id,
excep: excep,
questiontext: item.scriptContent,
+ answerps: item.answerps || null, // 娣诲姞闄勫姞淇℃伅
};
if (item.scriptType == 2 && item.scriptResult[0]) {
obj.asrtext = item.scriptResult.join("&");
@@ -1185,7 +1329,7 @@
})
.catch(() => {
if (this.form.serviceType == 13) {
- if (this.visitCount) {
+ if (this.visitCount != 1) {
this.$router.push({
path: "/logisticsservice/zbAgain",
});
@@ -1195,7 +1339,7 @@
});
}
} else if (this.form.serviceType == 2) {
- if (this.visitCount) {
+ if (this.visitCount != 1) {
this.$router.push({
path: "/logisticsservice/again",
});
@@ -1212,28 +1356,93 @@
console.error("鍙戠敓閿欒锛�", error);
});
},
- // 楠岃瘉鎵嬫満鍙锋牸寮�
- isValidPhone(phone) {
- return /^1[3-9]\d{9}$/.test(phone);
- },
- // 鍛煎彨澶勭悊
- handleCall(phone, type) {
- if (this.isValidPhone(phone)) {
- this.currentPhoneNumber = phone;
- this.callType = type;
-
- // 绛夊緟涓嬩竴涓猼ick纭繚鍊煎凡鏇存柊
- this.$nextTick(() => {
- this.$refs.callButton.startCall();
-
- // 鍙�夛細鏍规嵁涓嶅悓绫诲瀷鍋氫笉鍚屽鐞�
- if (type === "tel") {
- console.log("姝e湪鍛煎彨鎮h�呮湰浜�:", phone);
- } else {
- console.log("姝e湪鍛煎彨鑱旂郴浜�:", phone);
- }
- });
+ // 鐢佃瘽============================
+ // 楠岃瘉鐢佃瘽鍙风爜鏍煎紡骞惰繑鍥為敊璇俊鎭�
+ validatePhoneNumber(phone) {
+ if (!phone) {
+ return { isValid: false, message: "璇疯緭鍏ョ數璇濆彿鐮�" };
}
+
+ // 鎵嬫満鍙锋鍒�
+ const mobileRegex = /^1[3-9]\d{9}$/;
+
+ // 甯﹀尯鍙风殑鍥哄畾鐢佃瘽锛堝畬鏁存牸寮忥級
+ const landlineFullRegex = /^0\d{2,3}-?\d{7,8}$/;
+
+ // 涓嶅甫鍖哄彿鐨勫浐瀹氱數璇濓紙浠呮湰鍦板彿鐮侊級
+ const landlineLocalRegex = /^\d{7,8}$/;
+
+ if (mobileRegex.test(phone)) {
+ return { isValid: true, type: "mobile" };
+ } else if (landlineFullRegex.test(phone)) {
+ return { isValid: true, type: "landline" };
+ } else if (landlineLocalRegex.test(phone)) {
+ return {
+ isValid: false,
+ message: "鏈湴鍙风爜璇锋坊鍔犲尯鍙凤紙濡�028-1234567锛�",
+ };
+ } else {
+ return {
+ isValid: false,
+ message: "璇疯緭鍏ユ纭殑鐢佃瘽鍙风爜锛堟墜鏈哄彿鎴栧甫鍖哄彿鐨勫浐瀹氱數璇濓級",
+ };
+ }
+ },
+ // 浣跨敤绀轰緥
+ isValidPhone(phone) {
+ return this.validatePhoneNumber(phone).isValid;
+ },
+ handleCall(phone, type) {
+ if (!this.isValidPhone(phone)) {
+ this.$message.error("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ return;
+ }
+
+ this.currentPhoneNumber = phone;
+ this.callType = type;
+ this.callStatus = "calling";
+
+ this.$nextTick(() => {
+ this.$refs.callButton.startCall();
+
+ // 鐩戝惉閫氳瘽鐘舵�佸彉鍖�
+ this.$refs.callButton.$on("call-status-change", (status) => {
+ this.handleCallStatusChange(status);
+ });
+ });
+ },
+ // 澶勭悊閫氳瘽鐘舵�佸彉鍖�
+ handleCallStatusChange(status) {
+ console.log(status, "status");
+
+ this.callStatus = status.type;
+
+ if (status.type === "connected") {
+ this.currentCall = {
+ phone: this.currentPhoneNumber,
+ type: this.callType,
+ startTime: new Date(),
+ };
+ } else if (status.type === "ended" || status.type === "failed") {
+ this.currentCall = null;
+ }
+
+ // 鍙互鏍规嵁鐘舵�佹墽琛屽叾浠栨搷浣�
+ if (status.type === "failed") {
+ this.$message.error(`鍛煎彨澶辫触: ${status.text}`);
+ }
+ },
+ // 缁撴潫褰撳墠閫氳瘽
+ endCurrentCall() {
+ if (!this.currentCall) return;
+
+ this.isEndingCall = true;
+ this.$refs.callButton.endCall();
+
+ // 3绉掑悗閲嶇疆鐘舵��
+ setTimeout(() => {
+ this.isEndingCall = false;
+ }, 3000);
},
yuyingetdetail() {
this.tableDatatop.forEach((item, index) => {
@@ -1280,7 +1489,7 @@
})
.catch(() => {
if (this.form.serviceType == 13) {
- if (this.visitCount!=1) {
+ if (this.visitCount != 1) {
this.$router.push({
path: "/logisticsservice/zbAgain",
});
@@ -1290,7 +1499,7 @@
});
}
} else if (form.serviceType == 2) {
- if (this.visitCount!=1) {
+ if (this.visitCount != 1) {
this.$router.push({
path: "/followvisit/again",
});
@@ -1326,13 +1535,12 @@
this.form = res.rows[0].serviceSubtaskList.find(
(item) => item.id == this.id
);
- console.log(this.form.serviceType,'serviceType');
+ console.log(this.form.serviceType, "serviceType");
this.logsheetlist = res.rows[0].serviceSubtaskList;
this.templateid = this.logsheetlist[0].templateid;
const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡
const now = new Date(); // 褰撳墠鏃堕棿
- this.form.endtime = this.formatTime(this.form.endtime);
if (now < targetDate && this.form.sendstate == 2) {
this.$confirm("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
confirmButtonText: "纭畾",
@@ -1429,7 +1637,7 @@
})
.catch(() => {});
},
- handleOptionChange(a, b, c) {
+ aahandleOptionChange(a, b, c) {
const result = c.find((item) => item.optioncontent == a);
if (result.nextQuestion == 0) {
this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
@@ -1458,6 +1666,98 @@
}
this.$forceUpdate();
},
+ // 鍦╩ethods閮ㄥ垎锛屼慨鏀筯andleOptionChange鏂规硶:
+ handleOptionChange(selectedOption, questionIndex, options, a) {
+ if (document.activeElement) {
+ document.activeElement.blur();
+ }
+
+ // 鎵惧埌琚�変腑鐨勯�夐」瀵硅薄
+ const selectedOptionObj = options.find(
+ (item) => item.optioncontent == selectedOption
+ );
+
+ // 澶勭悊寮傚父鐘舵�侀珮浜�
+ this.tableDatatop[questionIndex].isabnormal =
+ !!selectedOptionObj.isabnormal;
+ // 澶勭悊闄勫姞杈撳叆妗嗘樉绀�
+
+ this.tableDatatop[questionIndex].showAppendInput =
+ selectedOptionObj.appendflag == 1;
+ console.log(this.tableDatatop);
+
+ // if (!this.tableDatatop[questionIndex].showAppendInput) {
+ // this.tableDatatop[questionIndex].answerps = ""; // 娓呴櫎闄勫姞淇℃伅
+ // }
+ // 淇濆瓨褰撳墠棰樼洰涔嬪墠宸茬粡闅愯棌鐨勯鐩姸鎬�
+ const previouslyHiddenBeforeCurrent = this.tableDatatop
+ .slice(0, questionIndex)
+ .map((item, index) => (item.astrict ? index : -1))
+ .filter((index) => index !== -1);
+
+ // 淇濆瓨涔嬪墠鍥爊extQuestion=0鑰岄殣钘忕殑棰樼洰鑼冨洿
+ const previouslyHiddenByEnd = this.tableDatatop
+ .map((item, index) => (item.hiddenByEnd ? index : -1))
+ .filter((index) => index !== -1);
+
+ // 濡傛灉branchFlag涓�1锛屽鐞嗛鐩烦杞�
+ if (a.branchFlag == 1) {
+ if (selectedOptionObj.nextQuestion == 0) {
+ // 缁撴潫闂瓟 - 闅愯棌鍚庨潰鎵�鏈夐鐩苟鏍囪
+ this.tableDatatop = this.tableDatatop.map((item, index) => ({
+ ...item,
+ astrict: index > questionIndex,
+ hiddenByEnd: index > questionIndex, // 鏍囪杩欎簺棰樼洰鏄缁撴潫闂瓟闅愯棌鐨�
+ }));
+ } else {
+ // 姝e父璺宠浆閫昏緫
+ const nextQuestionIndex = selectedOptionObj.nextQuestion - 1;
+
+ this.tableDatatop = this.tableDatatop.map((item, index) => {
+ // 淇濈暀褰撳墠棰樼洰涔嬪墠鐨勯殣钘忕姸鎬�
+ if (index < questionIndex) {
+ return {
+ ...item,
+ astrict: previouslyHiddenBeforeCurrent.includes(index),
+ hiddenByEnd: false, // 娓呴櫎缁撴潫鏍囪
+ };
+ }
+
+ // 褰撳墠棰樼洰鎬绘槸鍙
+ if (index === questionIndex) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 鏄剧ず鐩爣涓嬩竴棰�
+ if (index === nextQuestionIndex) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 濡傛灉鏄箣鍓嶈缁撴潫闂瓟闅愯棌鐨勯鐩紝鐜板湪搴旇鎭㈠鏄剧ず
+ if (item.hiddenByEnd) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 闅愯棌褰撳墠棰樺拰鐩爣棰樹箣闂寸殑棰樼洰
+ if (index > questionIndex && index < nextQuestionIndex) {
+ return { ...item, astrict: 1, hiddenByEnd: false };
+ }
+
+ // 鍏朵粬鎯呭喌淇濇寔鍘熺姸
+ return item;
+ });
+ }
+ } else {
+ // 濡傛灉娌℃湁璺宠浆锛屽彧闇�纭繚涓嬩竴棰樺彲瑙�
+ this.tableDatatop = this.tableDatatop.map((item, index) => ({
+ ...item,
+ astrict: index === questionIndex + 1 ? 0 : item.astrict,
+ hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
+ }));
+ }
+
+ this.$forceUpdate();
+ },
overdata() {
this.tableDatatop.forEach((item, index) => {
var obj = item.svyLibTemplateTargetoptions.find(
@@ -1477,6 +1777,10 @@
setupsubtask() {
this.$refs["zcform"].validate((valid) => {
if (valid) {
+ if (this.form.date1 && new Date(this.form.date1) < new Date()) {
+ this.$message.error("闅忚鏃堕棿涓嶈兘灏忎簬褰撳墠鏃堕棿");
+ return false;
+ }
this.form.remark =
this.form.remark + "銆�" + this.getCurrentTime() + "銆�";
let form = structuredClone(this.form);
@@ -1496,7 +1800,7 @@
}
// form.id = null;
form.sendstate = 2;
- console.log(form.serviceType,'form.serviceType');
+ console.log(form.serviceType, "form.serviceType");
addserviceSubtask(form).then((res) => {
if (res.code == 200) {
@@ -1531,69 +1835,205 @@
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
updateScore(a, b, c) {},
+ // 鍚堝苟淇敼鐩稿叧=============================
+ toggleMergeMode() {
+ this.isMergeMode = !this.isMergeMode;
+ if (!this.isMergeMode) {
+ this.selectedServices = [];
+ }
+ },
+
+ handleSelectionChange(selection) {
+ this.selectedServices = selection
+ .filter(
+ (item) => !item.preachformson || !item.preachformson.includes("3")
+ )
+ .map((item) => ({
+ id: item.id,
+ taskid: item.taskid,
+ taskName: item.taskName,
+ sendname: item.sendname,
+ }));
+ },
+ checkSelectable(row, index) {
+ // 褰� sendstate 涓� 6 鏃朵笉鍙��
+ return row.sendstate !== 6;
+ },
+ openMergeDialog() {
+ if (this.selectedServices.length < 2) {
+ this.$message.warning("璇疯嚦灏戦�夋嫨2涓棶鍗锋湇鍔¤繘琛屽悎骞�");
+ return;
+ }
+ this.mergeDialogVisible = true;
+ },
+
+ handleMergeSave(mergedData) {
+ // 澶勭悊鍚堝苟淇濆瓨閫昏緫
+ this.mergeDialogVisible = false;
+ this.isMergeMode = false;
+ this.selectedServices = [];
+
+ // 鏄剧ず淇濆瓨缁撴灉
+ if (mergedData.successCount == mergedData.totalCount) {
+ this.$message.success(`鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗穈);
+ } else if (mergedData.successCount > 0) {
+ this.$message.warning(
+ `鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗凤紝澶辫触 ${
+ mergedData.totalCount - mergedData.successCount
+ } 涓猔
+ );
+ } else {
+ this.$message.error("鎵�鏈夐棶鍗蜂繚瀛樺け璐�");
+ }
+
+ // 鍒锋柊鏁版嵁
+ this.getTaskservelist();
+ },
},
};
</script>
-<style lang="scss">
+<style lang="scss" scoped>
.Followupdetailspage {
margin: 10px;
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+}
+
+.action-container {
+ display: flex;
+ gap: 20px;
+ margin: 0 10px 20px 10px;
+
+ .manual-action {
+ flex: 1;
+ min-width: 0;
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ }
+
+ .call-action {
+ width: 60%;
+ min-width: 0;
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ }
+}
+
+.call-container {
+ padding: 20px;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ border-radius: 4px;
+ height: 100%;
+
+ .call-header {
+ margin-bottom: 20px;
+
+ h2 {
+ font-size: 20px;
+ color: #333;
+ margin: 0;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #eee;
+ }
+ }
+
+ .call-status {
+ margin-bottom: 20px;
+ }
+
+ .hangup-btn {
+ text-align: center;
+ margin-top: 20px;
+ }
+}
+.merge-controls {
+ background: #f5f7fa;
+ border-radius: 4px;
+ margin-left: 20px;
}
.Followuserinfo {
- margin: 20px 10px;
+ margin: 10px 10px 0 10px;
align-items: center;
padding: 30px;
background: #ffff;
border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
.userinfo-text {
font-size: 20px;
margin-right: 20px;
margin-bottom: 10px;
}
+
.userinfo-value {
color: rgb(15, 139, 211);
+
span {
margin-right: 20px;
}
}
}
+
::v-deep.el-table .warning-row {
background: #c4e2ee;
}
+
.Followuserinfos {
- margin: 20px 10px;
align-items: center;
padding: 30px;
background: #ffff;
border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ min-height: 880px; /* 鏈�灏忛珮搴︿笌闅忚鍐呭涓�鑷� */
+ display: flex;
+ flex-direction: column;
+
.userinfo-text {
font-size: 20px;
margin-right: 20px;
margin-bottom: 10px;
}
+
.userinfo-value {
color: rgb(15, 139, 211);
+
span {
margin-right: 20px;
}
}
+
+ .el-form {
+ flex: 1;
+ overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+ max-height: calc(880px - 60px); /* 鍑忓幓padding */
+ padding-right: 10px; /* 闃叉婊氬姩鏉¢伄鎸″唴瀹� */
+ }
+}
+.append-input-container {
+ margin-top: 15px;
+ padding: 10px;
+ background-color: #f5f7fa;
+ border-radius: 4px;
+ border: 1px solid #dcdfe6;
}
.borderdiv {
min-height: 60vh;
font-size: 20px;
padding: 30px;
+
.title {
font-size: 22px;
font-weight: bold;
margin-bottom: 20px;
text-align: center;
}
+
.leftside {
margin: 30px 0;
+
span {
width: 400px;
margin-left: 20px;
@@ -1603,9 +2043,11 @@
border-radius: 10px;
}
}
+
.offside {
display: flex;
flex-direction: row-reverse;
+
.offside-value {
padding: 10px;
background: rgb(217, 173, 253);
@@ -1615,8 +2057,15 @@
}
}
}
+.topic-dev[inert] {
+ opacity: 0.5;
+ pointer-events: none;
+}
.CONTENT {
padding: 10px;
+ height: 100%;
+ min-height: 660px; /* 璁剧疆鏈�灏忛珮搴� */
+
.title {
font-size: 22px;
font-weight: bold;
@@ -1624,40 +2073,47 @@
text-align: center;
}
}
+
.preview-left {
margin: 20px;
- // margin: 20px;
padding: 30px;
- // background: #ffff;
border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ max-height: 580px; /* 璁剧疆鏈�澶ч珮搴� */
+ overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+
.topic-dev {
margin-bottom: 25px;
font-size: 20px !important;
+
.dev-text {
margin-bottom: 10px;
}
}
}
+
.scriptTopic-isabnormal {
color: red;
}
+
.detailed {
width: 88%;
border-radius: 8px;
padding: 30px;
margin-bottom: 30px;
background-color: #ddf0f8;
+
.bg-purple {
margin-bottom: 20px;
}
+
.spanvalue {
display: inline-block;
min-width: 200px;
border-bottom: 1px solid rgb(172, 172, 172);
}
}
+
.headline {
font-size: 24px;
height: 40px;
@@ -1665,79 +2121,94 @@
padding-left: 5px;
margin-bottom: 10px;
display: flex;
- // justify-content: space-between;
+
.Add-details {
font-size: 18px;
color: #02a7f0;
cursor: pointer;
}
}
+
.red-star {
::v-deep.el-radio__label {
position: relative;
- padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+ padding-right: 10px;
}
+
::v-deep.el-radio__label::after {
content: "*";
color: red;
position: absolute;
- right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+ right: -5px;
top: 0;
}
+
::v-deep.el-input-group__textarea {
- white-space: pre-wrap; /* 淇濇寔绌虹櫧绗﹀簭鍒楀苟姝e父鎹㈣ */
- word-break: break-all; /* 鍦ㄩ暱鍗曡瘝鎴朥RL鍦板潃鍐呴儴杩涜鎹㈣ */
+ white-space: pre-wrap;
+ word-break: break-all;
}
+
::v-deep.el-checkbox__label {
position: relative;
- padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+ padding-right: 10px;
}
+
::v-deep.el-checkbox__label::after {
content: "*";
color: red;
position: absolute;
- right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+ right: -5px;
top: 0;
}
}
+
::v-deep.offside-value .el-radio__label {
color: #fff;
}
+
::v-deep.el-link.el-link--default {
color: #02a7f0 !important;
}
+
.el-message-box__btns button:nth-child(2) {
margin-left: 10px;
background-color: #f57676;
border-color: #f57676;
}
+
.el-icon-phone {
transition: all 0.3s;
}
+
.el-button[disabled] .el-icon-phone {
color: #c0c4cc;
}
+
.el-button:not([disabled]) .el-icon-phone {
color: #409eff;
}
+
.el-button:not([disabled]):hover .el-icon-phone {
color: #66b1ff;
transform: scale(1.1);
}
+
.mulsz {
font-size: 25px;
margin-top: 20px;
}
+
.el-input.is-disabled .el-input__inner {
- background-color: #fff; /* 鑳屾櫙棰滆壊 */
- border-color: #dcdfe6; /* 杈规棰滆壊 */
- color: #080808 !important; /* 鏂囧瓧棰滆壊 */
- cursor: not-allowed; /* 榧犳爣鏍峰紡 */
+ background-color: #fff;
+ border-color: #dcdfe6;
+ color: #080808 !important;
+ cursor: not-allowed;
}
+
.el-textarea.is-disabled .el-textarea__inner {
- background-color: #fff; /* 鑳屾櫙棰滆壊 */
- border-color: #dcdfe6; /* 杈规棰滆壊 */
- color: #080808 !important; /* 鏂囧瓧棰滆壊 */
- cursor: not-allowed; /* 榧犳爣鏍峰紡 */
+ background-color: #fff;
+ border-color: #dcdfe6;
+ color: #080808 !important;
+ cursor: not-allowed;
}
</style>
--
Gitblit v1.9.3