|
|
@@ -507,7 +507,7 @@
|
|
|
协定方总金额:<span>{{ totalPrice || "0.00" }}元</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="t-b-b-right flex-vertical-center-r" v-if="!isLocked">
|
|
|
+ <div class="t-b-b-right flex-vertical-center-r" v-if="!isLocked || (showSaveWhenLocked && isNonEditableLock)">
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
size="mini"
|
|
|
@@ -746,6 +746,11 @@ export default {
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
|
},
|
|
|
+ // 锁定(不可修改)时是否仍显示「保存」按钮(默认 false,保留原行为;仅需要的页面传 true)
|
|
|
+ showSaveWhenLocked: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false,
|
|
|
+ },
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -825,6 +830,17 @@ export default {
|
|
|
}
|
|
|
return this.useIsUpdateLock && this.innerIsEditable === "0";
|
|
|
},
|
|
|
+ // 已付费锁定(与 isLocked 付费分支一致;独立抽出供按钮显隐判断,不改动 isLocked)
|
|
|
+ isPaidLock() {
|
|
|
+ const currentData = this.prescriptionDataMap[this.activeIndex];
|
|
|
+ const paystate = currentData?.paystate ?? this.paystate;
|
|
|
+ const isPay = currentData?.isPay ?? this.isPay;
|
|
|
+ return !!(isPay || paystate == 1);
|
|
|
+ },
|
|
|
+ // 仅因「不可修改」(后端 innerIsEditable==="0") 锁定、且未付费
|
|
|
+ isNonEditableLock() {
|
|
|
+ return this.useIsUpdateLock && this.innerIsEditable === "0" && !this.isPaidLock;
|
|
|
+ },
|
|
|
activeDetailTypes() {
|
|
|
const validTypes = ["经络", "穴位", "耳穴", "部位", "其他详情"];
|
|
|
return validTypes.filter((t) => this.innerDetailTypes.includes(t));
|