This commit is contained in:
zoujiandong
2025-07-25 08:41:38 +08:00
parent 0b7edc39d4
commit 53d8455890
27 changed files with 594 additions and 336 deletions
+224 -87
View File
@@ -383,25 +383,54 @@
<up-popup
:round="10"
zIndex="9"
:closeOnClickOverlay="false"
:show="showCase"
mode="bottom"
@close="closeCase"
>
<view class="votepop casepop">
<view class="titlebox">
<view class="left" @click="showCase = false">取消</view>
<view class="left continue" @click="continueCase" v-show="level != 3"
>继续选择</view
>
<view class="left" @click="cancelCase">取消</view>
<view class="right" @click="confirmCase">确定</view>
</view>
<view class="stepbox">
<up-steps :current="level-1" direction="column" :key="freshKey">
<up-steps-item >
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('1')">
<view class="left">{{!caseValue1.label_name?'请选择选项':caseValue1.label_name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
<up-steps-item v-if="caseValue1.label_name && labelObj.list2.length>0">
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('2')">
<view class="left">{{!caseValue2.label_name?'请选择选项':caseValue2.label_name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
<up-steps-item v-if="caseValue2.label_name && labelObj.list3.length>0">
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('3')">
<view class="left">{{!caseValue3.label_name?'请选择选项':caseValue3.label_name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
</up-steps>
</view>
<scroll-view class="casecon" scroll-y="true">
<view v-show="level == 1" calss="casePadding">
<view v-show="level == 1" >
<up-radio-group
v-model="caseValue1"
v-model="caseValue1.app_iden"
name="group1"
iconPlacement="right"
placement="column"
@change="groupChange1"
>
<view
class="column"
@@ -416,9 +445,11 @@
</view>
</up-radio-group>
</view>
<view v-show="level == 2" calss="casePadding">
<view v-show="level == 2" >
<up-radio-group
v-model="caseValue2"
name="group2"
@change="groupChange2"
v-model="caseValue2.app_iden"
iconPlacement="right"
placement="column"
>
@@ -435,10 +466,11 @@
</view>
</up-radio-group>
</view>
<view v-show="level == 3" calss="casePadding">
<view v-show="level == 3" >
<up-radio-group
v-model="caseValue3"
name="group3"
@change="groupChange3"
v-model="caseValue3.app_iden"
iconPlacement="right"
placement="column"
>
@@ -482,18 +514,9 @@ const isFlag = ref(false);
const delId = ref("");
const showModal = ref(false);
const delType = ref("delDraft"); //delDraft saveDraft
const showCase = ref(false);
const caseValue1 = ref("");
const caseValue2 = ref("");
const caseValue3 = ref("");
const level = ref(1);
const isPublish = ref(false);
const exchange_id=ref('');
const labelObj = reactive({
list1: [],
list2: [],
list3: [],
});
const bottomHeight=ref(200);
const form = reactive({
exchange_title: "",
@@ -524,6 +547,29 @@ const editorCtxResult = ref(null);
const isFocusInfo = ref(false);
const isFocusResult = ref(false);
const labelList = ref([]);
const level = ref(1);
const freshKey=ref(0);
const showCase = ref(false);
const canOpenCase = ref(false);
const caseValue1 = reactive({
app_iden:'',
label_name:'',
});
const caseValue2 = reactive({
app_iden:'',
label_name:'',
});
const caseValue3 = reactive({
app_iden:'',
label_name:'',
});
const labelObj = reactive({
list1: [],
list2: [],
list3: []
});
const goBack = () => {
uni.navigateBack({
delta: 1,
@@ -534,9 +580,7 @@ const openDraftList=()=>{
getDraftList();
showDraft.value=true;
}
const closeCase = () => {
showCase.value = false;
};
const epaste=(e)=>{
console.log(e)
}
@@ -756,7 +800,7 @@ const saveDraft = async () => {
const resResult = await editorCtxResult.value.getLastContent();
form.exchange_summary = resResult.html;
if(labelList.value.length>0){
form.case_exchange_label = labelList.value;
form.case_exchange_label = labelList.value;
}
api.saveDraft(form).then((res) => {
isLock.value = false;
@@ -1100,84 +1144,157 @@ const getDraftList = () => {
draftList.value = res.data.data.data;
});
};
const openCaseLevel=(lev)=>{
freshKey.value++;
level.value=lev;
if(lev==1){
caseValue2.label_name='';
caseValue2.app_iden='';
labelObj.list2=[]
}else if(lev==2){
labelObj.list3=[];
caseValue3.label_name='';
caseValue3.app_iden=''
}
};
const groupChange1=(e)=>{
caseValue1.app_iden=e;
for (var i = 0; i <labelObj.list1.length; i++) {
if(labelObj.list1[i].app_iden==caseValue1.app_iden){
caseValue1.label_name=labelObj.list1[i].label_name;
break;
}
}
console.log(caseValue1);
getCaseLabel(2,e)
}
const groupChange2=(e)=>{
caseValue2.app_iden=e;
for (var i = 0; i <labelObj.list2.length; i++) {
if(labelObj.list2[i].app_iden==caseValue2.app_iden){
caseValue2.label_name=labelObj.list2[i].label_name;
break;
}
}
getCaseLabel(3,e)
}
const groupChange3=(e)=>{
caseValue3.app_iden=e;
level.value =3
for (var i = 0; i <labelObj.list3.length; i++) {
if(labelObj.list3[i].app_iden==caseValue3.app_iden){
caseValue3.label_name=labelObj.list3[i].label_name;
break;
}
}
}
const getCaseLabel = (lev,pid=0) => {
api.getCaseLabel({
pId:pid
}).then((res) => {
level.value = lev;
if (lev == 1) {
labelObj.list1 = res.data.data;
labelObj.list1 = res.data.data;
//label_iden.value = caseValue1.value;
} else if (lev == 2) {
labelObj.list2 = res.data.data;
if(res.data.data.length==0){
level.value = 1
}
//label_iden.value = caseValue2.value;
} else if (lev == 3) {
labelObj.list3 = res.data.data;
}
level.value = lev;
if(res.data.data.length==0){
level.value = 2
}
//label_iden.value = caseValue3.value;
}
});
};
const confirmCase = () => {
if (level.value == 1 && caseValue1.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
if (level.value == 2 && caseValue2.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
if (level.value == 3 && caseValue3.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
const openCase=()=>{
showCase.value = true;
}
const cancelCase=()=>{
showCase.value = false;
}
const clearCase=()=>{
level.value=1;
caseValue1.app_iden='';
caseValue1.label_name='';
caseValue2.app_iden='';
caseValue2.label_name='';
caseValue3.app_iden='';
caseValue3.label_name='';
labelObj.list2=[];
labelObj.list3=[];
freshKey.value++;
}
const confirmCase = () => {
if (level.value == 1 && caseValue1.app_iden == "") {
uni.showToast({ title: "请选择疾病选项", icon: "none" });
return false;
};
if(level.value == 1){
let label = labelObj.list1.find((item) => item.app_iden == caseValue1.value);
console.log(label);
labelList.value.push({
app_iden:label.app_iden,
label_name:label.label_name,
});
}
if(level.value == 2 ){
let label = labelObj.list2.find((item) => item.app_iden == caseValue2.value);
labelList.value.push({
app_iden:label.app_iden,
label_name:label.label_name,
});
}
if(level.value == 3 ){
let label = labelObj.list3.find((item) => item.app_iden == caseValue3.value);
labelList.value.push({
app_iden:label.app_iden,
label_name:label.label_name,
});
}
//去重
labelList.value=labelList.value.filter((item, index) => labelList.value.findIndex(i => i.app_iden === item.app_iden) === index);
caseValue1.value = "";
caseValue2.value = "";
caseValue3.value = "";
};
const continueCase = () => {
if (level.value == 1 && caseValue1.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
if (level.value == 2 && caseValue2.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
if (level.value == 3 && caseValue3.value == "") {
uni.showToast({ title: "请选择疾病", icon: "none" });
return false;
}
if(level.value == 1 ){
getCaseLabel(2,caseValue1.value);
let {app_iden,label_name}=caseValue1;
labelList.value.push({
app_iden,
label_name
});
}else if(level.value == 2 ){
getCaseLabel(3,caseValue2.value);
if(!caseValue2.app_iden){
let {app_iden,label_name}=caseValue1;
labelList.value.push({
app_iden,
label_name
});
}else{
let {app_iden,label_name}=caseValue2;
labelList.value.push({
app_iden,
label_name
});
}
}else if(level.value == 3 ){
if(!caseValue3.app_iden){
let {app_iden,label_name}=caseValue2;
labelList.value.push({
app_iden,
label_name
});
}else{
let {app_iden,label_name}=caseValue3;
labelList.value.push({
app_iden,
label_name
});
}
}
labelList.value=labelList.value.filter((item, index) => labelList.value.findIndex(i => i.app_iden === item.app_iden) === index);
console.log(labelList.value);
showCase.value=false;
};
const closeCase = () => {
showCase.value = false;
};
const delLabel = (index) => {
labelList.value.splice(index, 1);
};
@@ -1186,6 +1303,7 @@ const openLabelPop=()=>{
uni.showToast({ title: "最多添加5个标签", icon: "none" });
return false;
}
clearCase();
showCase.value=true;
getCaseLabel(1,0);
}
@@ -1206,6 +1324,20 @@ onLoad((optoions) => {
</script>
<style lang='scss' scoped>
.stepbox{
padding:15rpx 30rpx;
border-bottom: 2rpx dotted #f3f4f6;
:deep(.u-steps-item__content){
margin-top: -5rpx!important;
}
.slot-content{
width:100%;
margin-bottom: 25rpx;
justify-content: space-between;
align-items: center;
display: flex;
}
}
.casepop{
display: flex;
flex-direction: column;
@@ -1798,6 +1930,7 @@ onLoad((optoions) => {
display: flex;
padding: 25rpx 25rpx 10rpx;
margin-bottom: 20rpx;
flex-wrap:wrap;
}
.add {
display: flex;
@@ -1805,13 +1938,17 @@ onLoad((optoions) => {
justify-content: center;
align-items: center;
color: #3cc7c0;
margin-bottom: 10rpx;
margin-left: 18rpx;
}
.sick {
position: relative;
padding: 0 60rpx 0 30rpx;
height: 60rpx;
margin-bottom: 10rpx;
white-space: nowrap;
display: flex;
margin-right: 10rpx;
justify-content: center;
align-items: center;
background: #f9f9f9;
+4 -2
View File
@@ -281,11 +281,11 @@
<up-popup
:zIndex="60"
:overlayStyle="{ zIndex: 59 }"
:closeOnClickOverlay="false"
:show="showDeal"
:round="10"
mode="bottom"
@close="closeDeal"
>
<view class="dealbox">
<view class="dealcell" @click="goEdit">编辑</view>
@@ -336,6 +336,7 @@ const label_iden=ref('');
const dropTitle=ref('发布时间');
const orderFilter=ref('1')
const uDropdownRef=ref(null);
const dealId=ref('')
const options= ref([
{
label: "发布时间",
@@ -357,6 +358,7 @@ const order=reactive({
})
const showCase = ref(false);
const canOpenCase = ref(false);
const freshKey=ref(0);
const caseValue1 = reactive({
value:'',
name:'',
+1
View File
@@ -249,6 +249,7 @@ const order=reactive({
})
const showCase = ref(false);
const canOpenCase = ref(false);
const freshKey=ref(0);
const caseValue1 = reactive({
value:'',
name:'',