Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
b8d5456e62
@ -42,3 +42,13 @@ export function delMaterials(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
// 人群列表
|
||||
|
||||
|
||||
export function crowdInfo(query) {
|
||||
return request({
|
||||
url: '/manage/crowdInfo/getList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
10
src/api/manage/newSigning.js
Normal file
10
src/api/manage/newSigning.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 签约
|
||||
export function addsign(data) {
|
||||
return request({
|
||||
url: '/manage/signRecord/sign',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -59,9 +59,9 @@ export function delPropaganda(id) {
|
||||
}
|
||||
// 左侧列表
|
||||
|
||||
export function listWechatTemplateNum(query) {
|
||||
export function selectNumByDept(query) {
|
||||
return request({
|
||||
url: '/system/department/listWechatTemplateNum',
|
||||
url: '/manage/propaganda/selectNumByDept',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
|
||||
@ -42,3 +42,12 @@ export function delSignRecord(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
//解约
|
||||
export function updateSignStatus(data) {
|
||||
return request({
|
||||
url: '/manage/signRecord/updateSignStatus',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
@ -135,15 +135,14 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="补充说明" prop="supplementIllustrateId">
|
||||
<el-select v-model="form.supplementIllustrateId" filterable placeholder="请输入异常原因" style="width:380px"
|
||||
clearable>
|
||||
<el-select v-model="form.supplementIllustrateId" filterable placeholder="请输入异常原因" style="width:380px" clearable>
|
||||
<el-option v-for="item in supplementIllustratelist" :key="item.id" :label="item.abnormalCauseValue"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="功能限制" prop="functionLimitation">
|
||||
<el-input v-model="form.functionLimitation" placeholder="请输入功能限制" />
|
||||
<el-input v-model="form.functionLimitation" placeholder="终止所有服务" disabled />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="来源" prop="blacklistSource">
|
||||
<el-select v-model="form.blacklistSource" placeholder="请选择来源">
|
||||
@ -281,7 +280,7 @@ export default {
|
||||
abnormalCauseValue: null,
|
||||
supplementIllustrateId: null,
|
||||
supplementIllustrateValue: null,
|
||||
functionLimitation: null,
|
||||
functionLimitation: '终止所有服务',
|
||||
blacklistSource: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
|
||||
193
src/views/manage/continueSigning/index.vue
Normal file
193
src/views/manage/continueSigning/index.vue
Normal file
@ -0,0 +1,193 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="interval">
|
||||
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="btns">
|
||||
<el-button>取消</el-button>
|
||||
<el-button type="primary" @click="signupload">签约</el-button>
|
||||
</div>
|
||||
<el-descriptions title="服务包续约详情" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-descriptions title="患者信息" style="padding:0 30px">
|
||||
<el-descriptions-item label="患者姓名">{{ $route.query.patientName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ $route.query.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年龄">{{ $route.query.age }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{ $route.query.patientPhone }}</el-descriptions-item>
|
||||
<el-descriptions-item label="就诊方式">{{
|
||||
$route.query.visitMethod == 'OUTPATIENT_SERVICE' ? '门诊' : $route.query.visitMethod == 'BE_IN_HOSPITAL' ?
|
||||
'住院' : ''
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="诊断">{{ $route.query.mainDiagnosis }}</el-descriptions-item>
|
||||
<el-descriptions-item label="住院/门诊号">{{ $route.query.admissionNumber }}{{ $route.query.outpatientNumber
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="医院">{{ $route.query.hospitalAgencyName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="科室">{{ $route.query.departmentName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="服务包缴费状态">{{ $route.query.paymentStatus == 'PAID' ? '已缴费' : '' }}
|
||||
{{ $route.query.paymentStatus == 'UNPAID_FEES' ? '未缴费' : '' }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="出院/门诊时间">{{ $route.query.patientName }}</el-descriptions-item> -->
|
||||
<!-- <el-descriptions-item label="注册时间">{{ $route.query.patientName }}</el-descriptions-item> -->
|
||||
</el-descriptions>
|
||||
<el-descriptions title="服务包信息" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm" :inline="true"
|
||||
style="padding-left:40px">
|
||||
<el-form-item label="选择服务包" prop="packageName">
|
||||
<el-input v-model="form.packageName" style="width:700px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="签约月数" prop="">
|
||||
<el-input v-model="form.packageName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="服务时长" prop="packageName">
|
||||
<el-input v-model="form.packageName" style="width:150px"></el-input>
|
||||
至
|
||||
<el-input v-model="form.packageName" style="width:150px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="服务包价格" prop="">
|
||||
<el-input v-model="form.packageName"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-descriptions title="硬件信息" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm" :inline="true"
|
||||
style="padding-left:40px">
|
||||
<div v-for="(item, index) in form.hardwarelist" :key="index">
|
||||
<el-form-item label="硬件类型" :prop="`hardwarelist[${index}].hardwareType`"
|
||||
:rules="rules.hardwarelist.hardwareType">
|
||||
<el-select v-model="item.hardwareType" placeholder="请选择硬件类型" clearable style="width:208px">
|
||||
<el-option v-for="dict in dict.type.hardware_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="SN码" :prop="`hardwarelist[${index}].snCode`" :rules="rules.hardwarelist.snCode">
|
||||
<el-input v-model="item.snCode" placeholder="请输入设备SN码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="mini" @click="delhardware(index)">删除</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-button class="addbtn" type="primary" size="mini" @click="addhardware">新增硬件</el-button>
|
||||
</el-form>
|
||||
<el-descriptions title="知情同意书" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-upload action="https://jsonplaceholder.typicode.com/posts/" list-type="picture-card"
|
||||
style="margin-left:70px" :on-preview="handlePictureCardPreview" :on-remove="handleRemove">
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
addsign
|
||||
} from '@/api/manage/newSigning.js'
|
||||
export default {
|
||||
dicts: ['hardware_type'],
|
||||
name: "newSigning",
|
||||
data() {
|
||||
return {
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
packageName: undefined,
|
||||
hardwarelist: [
|
||||
{
|
||||
snCode: '',
|
||||
hardwareType: '',
|
||||
}
|
||||
],
|
||||
},
|
||||
rules: {
|
||||
packageName: [
|
||||
{ required: true, message: '请选择服务包', trigger: 'change' }
|
||||
],
|
||||
hardwarelist: {
|
||||
snCode: [
|
||||
{ required: true, message: '请输入SN码', trigger: 'change' }
|
||||
],
|
||||
hardwareType: [
|
||||
{ required: true, message: '请选择硬件类型', trigger: 'change' }
|
||||
],
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
//签约
|
||||
signupload() {
|
||||
addsign(this.form).then(res => {
|
||||
|
||||
})
|
||||
},
|
||||
//新增硬件
|
||||
addhardware() {
|
||||
this.form.hardwarelist.push({
|
||||
snCode: '',
|
||||
hardwareType: '',
|
||||
})
|
||||
},
|
||||
delhardware(index) {
|
||||
this.form.hardwarelist.splice(index, 1);
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url;
|
||||
this.dialogVisible = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.app-container {
|
||||
padding: 14px 0 0;
|
||||
background-color: #F2F3F5 !important;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.descriptions {
|
||||
padding: 20px 20px 10px;
|
||||
}
|
||||
|
||||
.descriptions {
|
||||
::v-deep .el-descriptions-item__label.has-colon::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.interval {
|
||||
width: 23%;
|
||||
background-color: #fff;
|
||||
border-radius: 8px 0 0 8px;
|
||||
border-right: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: #fff;
|
||||
width: 73%;
|
||||
border-radius: 0 8px 8px 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.btns {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
.addbtn {
|
||||
margin-right: 100px;
|
||||
float: right;
|
||||
transform: translateY(-200%);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="素材来源" prop="materialsName">
|
||||
<!-- <el-form-item label="素材来源" prop="materialsName">
|
||||
<el-select
|
||||
v-model="queryParams.materialsName"
|
||||
placeholder="请选择素材来源"
|
||||
@ -46,13 +46,8 @@
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input
|
||||
v-model="queryParams.materialsName"
|
||||
placeholder="请输入素材来源"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/> -->
|
||||
</el-form-item>
|
||||
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item>
|
||||
<el-button
|
||||
@ -86,7 +81,6 @@
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['manage:materials:remove']"
|
||||
>批量删除</el-button
|
||||
@ -97,251 +91,53 @@
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
||||
<el-tabs
|
||||
v-model="queryParams.materialsType"
|
||||
type="card"
|
||||
@tab-click="handleClick"
|
||||
>
|
||||
<el-tab-pane label="图片" name="IMAGE_TEXT"></el-tab-pane>
|
||||
<el-tab-pane label="视频" name="VIDEO"></el-tab-pane>
|
||||
</el-tabs>
|
||||
<div class="bodytopxj">
|
||||
<div class="bodylist" @click.stop="viewshow">
|
||||
<el-checkbox v-model="checked"></el-checkbox>
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="bodylist" v-for="item in materialsList" :key="item.id">
|
||||
<el-checkbox
|
||||
v-model="item.checked"
|
||||
@change="changecheck($event, item)"
|
||||
></el-checkbox>
|
||||
<div @click.stop="viewshow(item)">
|
||||
<img
|
||||
:src="baseUrl + item.materialsFilePath"
|
||||
alt=""
|
||||
v-if="item.materialsFilePath && !item.videoCoverFilePath"
|
||||
/>
|
||||
<img
|
||||
:src="baseUrl + item.videoCoverFilePath"
|
||||
alt=""
|
||||
v-if="item.videoCoverFilePath && item.materialsFilePath"
|
||||
/>
|
||||
<div class="texttitle">{{ item.name }}</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
创建人/创建时间:<span>{{ item.createBy }}</span
|
||||
>/<span>{{ item.createTime }}</span>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label" @click.stop="labelchange">标签管理</div>
|
||||
<!-- <div class="dataliat">标签:暂无</div> -->
|
||||
<div class="dataliat">标签:
|
||||
|
||||
<span v-if="item.indications">{{ item.indications }},</span>
|
||||
<span v-if="item.drugName">{{ item.drugName }},</span>
|
||||
<span v-if="item.applicableDiseases">{{ item.applicableDiseases }},</span>
|
||||
<span v-if="item.surgicalName">{{ item.surgicalName }},</span>
|
||||
<span v-if="item.inspectionItems">{{ item.inspectionItems }},</span>
|
||||
<span v-if="item.checkItems">{{ item.checkItems }},</span>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
</div>
|
||||
|
||||
<div class="bodylist">
|
||||
<img src="@/assets/system/userinfo.jpg" alt="" />
|
||||
<div class="texttitle">测试素材封面</div>
|
||||
<div class="dataliat">
|
||||
创建人/创建时间:<span>张程程</span>/<span
|
||||
>555555555555555555555555555555555555</span
|
||||
>
|
||||
</div>
|
||||
<div class="dataliat">素材来源:</div>
|
||||
<div class="dataliat">标签:暂无</div>
|
||||
<div class="label">标签管理</div>
|
||||
<div class="label" @click.stop="labelchange(item)">标签管理</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-table
|
||||
v-loading="loading"
|
||||
:data="materialsList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键id" align="center" prop="id" />
|
||||
<el-table-column label="素材名称" align="center" prop="materialsName" />
|
||||
<el-table-column
|
||||
label="
|
||||
素材类型,图文:IMAGE_TEXT,视频:VIDEO"
|
||||
align="center"
|
||||
prop="materialsType"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<dict-tag
|
||||
:options="dict.type.materials_type"
|
||||
:value="scope.row.materialsType"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="素材选择,AI生成:AI_GENERATION,手动上传:MANUAL_UPLOAD"
|
||||
align="center"
|
||||
prop="materialsOption"
|
||||
/>
|
||||
<el-table-column
|
||||
label="素材图片/者视频文件存放路径"
|
||||
align="center"
|
||||
prop="materialsFilePath"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<dict-tag
|
||||
:options="dict.type.video_cover_type"
|
||||
:value="scope.row.materialsFilePath"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="视频封面类型,视频首帧:VIDEO_FIRST_FRAME,手动上传:MANUAL_UPLOAD"
|
||||
align="center"
|
||||
prop="videoCoverType"
|
||||
width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<image-preview
|
||||
:src="scope.row.videoCoverType"
|
||||
:width="50"
|
||||
:height="50"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="视频封面存放路径"
|
||||
align="center"
|
||||
prop="videoCoverFilePath"
|
||||
/>
|
||||
<el-table-column
|
||||
label="素材摘要"
|
||||
align="center"
|
||||
prop="materialsAbstract"
|
||||
/>
|
||||
<el-table-column label="适用症状" align="center" prop="indications" />
|
||||
<el-table-column
|
||||
label="适用疾病"
|
||||
align="center"
|
||||
prop="applicableDiseases"
|
||||
/>
|
||||
<el-table-column label="药物名称" align="center" prop="drugName" />
|
||||
<el-table-column label="手术名称" align="center" prop="surgicalName" />
|
||||
<el-table-column label="检查项目" align="center" prop="checkItems" />
|
||||
<el-table-column label="检验项目" align="center" prop="inspectionItems" />
|
||||
<el-table-column label="所属人群表id" align="center" prop="crowdId">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag
|
||||
:options="dict.type.crowd_type"
|
||||
:value="scope.row.crowdId"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="人群名称" align="center" prop="crowName" />
|
||||
<el-table-column
|
||||
label="素材状态,全部:ALL,已上架:LISTED,未上架:NOT_LISTED"
|
||||
align="center"
|
||||
prop="materialsStatus"
|
||||
/>
|
||||
<el-table-column label="素材备注" align="center" prop="materialsRemark" />
|
||||
<el-table-column
|
||||
label="素材排序,值越小排序越靠前"
|
||||
align="center"
|
||||
prop="materialsSort"
|
||||
/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:materials:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:materials:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table> -->
|
||||
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
@ -363,7 +159,7 @@
|
||||
<el-form-item label="素材名称" prop="materialsName">
|
||||
<el-input v-model="form.materialsName" placeholder="请输入素材名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="素材类型">
|
||||
<el-form-item label="素材类型" prop="materialsType">
|
||||
<el-radio
|
||||
v-model="form.materialsType"
|
||||
label="IMAGE_TEXT"
|
||||
@ -379,38 +175,38 @@
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="素材上传"
|
||||
prop="materialsName111"
|
||||
prop="materialsFilePath"
|
||||
v-if="form.materialsType == 'IMAGE_TEXT'"
|
||||
>
|
||||
<stationAcatar
|
||||
@imgUrl="imgUrl"
|
||||
:img="form.propagandaCoverPath"
|
||||
:type="'propagandaCoverUrl'"
|
||||
:img="form.materialsFilePath"
|
||||
:type="'materialsCoverUrl'"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="视频素材上传"
|
||||
prop="materialsName111"
|
||||
prop="materialsFilePath"
|
||||
v-if="form.materialsType == 'VIDEO'"
|
||||
>
|
||||
<stationAcatar
|
||||
style="width: 208px"
|
||||
@imgUrl="imgUrl2"
|
||||
:tovideo="form.posterVideoUrl"
|
||||
:type="'posterVideoUrl'"
|
||||
:tovideo="form.materialsFilePath"
|
||||
:type="'materialsVideoUrl'"
|
||||
v-if="open"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="视频封面"
|
||||
prop="materialsName111"
|
||||
prop="videoCoverFilePath"
|
||||
v-if="form.materialsType == 'VIDEO'"
|
||||
>
|
||||
<stationAcatar
|
||||
@imgUrl="imgUrl"
|
||||
:img="form.propagandaCoverPath"
|
||||
:type="'propagandaCoverUrl'"
|
||||
@imgUrl="imgUrl3"
|
||||
:img="form.videoCoverFilePath"
|
||||
:type="'materialsCoverUrl'"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
@ -421,32 +217,7 @@
|
||||
placeholder="请输入内容"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item
|
||||
label="素材选择,AI生成:AI_GENERATION,手动上传:MANUAL_UPLOAD"
|
||||
>
|
||||
<file-upload v-model="form.materialsOption" />
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="素材图片/者视频文件存放路径">
|
||||
<el-radio-group v-model="form.materialsFilePath">
|
||||
<el-radio
|
||||
v-for="dict in dict.type.video_cover_type"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{ dict.label }}</el-radio
|
||||
>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="视频封面类型,视频首帧:VIDEO_FIRST_FRAME,手动上传:MANUAL_UPLOAD"
|
||||
>
|
||||
<image-upload v-model="form.videoCoverType" />
|
||||
</el-form-item>
|
||||
<el-form-item label="视频封面存放路径" prop="videoCoverFilePath">
|
||||
<el-input
|
||||
v-model="form.videoCoverFilePath"
|
||||
placeholder="请输入视频封面存放路径"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
|
||||
|
||||
<el-form-item label="适用症状" prop="indications">
|
||||
<el-input v-model="form.indications" placeholder="请输入适用症状" />
|
||||
@ -472,40 +243,24 @@
|
||||
placeholder="请输入检验项目"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="所属人群表id" prop="crowdId">
|
||||
<el-select v-model="form.crowdId" placeholder="请选择所属人群表id">
|
||||
<el-option
|
||||
v-for="dict in dict.type.crowd_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="人群名称" prop="crowName">
|
||||
<el-select v-model="form.crowName" placeholder="请选择" style="width: 381px;">
|
||||
<el-select
|
||||
v-model="form.crowName"
|
||||
placeholder="请选择"
|
||||
style="width: 381px"
|
||||
@change="crowNamechange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionscrowName"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.id"
|
||||
:label="item.crowdName"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input v-model="form.crowName" placeholder="请输入人群名称" /> -->
|
||||
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="素材备注" prop="materialsRemark">
|
||||
<el-input
|
||||
v-model="form.materialsRemark"
|
||||
placeholder="请输入素材备注"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="素材排序,值越小排序越靠前" prop="materialsSort">
|
||||
<el-input
|
||||
v-model="form.materialsSort"
|
||||
placeholder="请输入素材排序,值越小排序越靠前"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
@ -517,33 +272,34 @@
|
||||
<div class="viewbody">
|
||||
<div class="left">
|
||||
<video
|
||||
v-if="activeName == 'VIDEO'"
|
||||
v-if="queryParams.materialsType == 'VIDEO'"
|
||||
ref="myVideo"
|
||||
:src="baseUrl + viewform.materialsFilePath"
|
||||
controls
|
||||
></video>
|
||||
<img
|
||||
src="@/assets/system/userinfo.jpg"
|
||||
:src="baseUrl + viewform.materialsFilePath"
|
||||
alt=""
|
||||
v-if="activeName == 'IMAGE_TEXT'"
|
||||
v-if="queryParams.materialsType == 'IMAGE_TEXT'"
|
||||
/>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="nametitle">素材名称</div>
|
||||
<div class="nameitem">半蹲起立练习(室早)</div>
|
||||
<div class="nameitem">{{viewform.materialsName}}</div>
|
||||
<div class="nametitle">创建人员</div>
|
||||
<div class="nameitem">张宇</div>
|
||||
<div class="nameitem">{{viewform.createBy}}</div>
|
||||
<div class="nametitle">创建时间</div>
|
||||
<div class="nameitem">2024-1-25 15:42</div>
|
||||
<div class="nameitem">{{viewform.createTime}}</div>
|
||||
<div class="nametitle">素材摘要</div>
|
||||
<div class="nameitem">88888888888888888888888888888888888</div>
|
||||
<div class="nameitem">{{viewform.materialsAbstract}}</div>
|
||||
<div class="nametitle">素材标签:</div>
|
||||
<div class="nameitem">适用症状:</div>
|
||||
<div class="nameitem">药物名称:</div>
|
||||
<div class="nameitem">适用疾病:</div>
|
||||
<div class="nameitem">手术名称:</div>
|
||||
<div class="nameitem">检验项目:</div>
|
||||
<div class="nameitem">检查项目:</div>
|
||||
<div class="nameitem">人群:</div>
|
||||
<div class="nameitem">适用症状:{{viewform.indications}}</div>
|
||||
<div class="nameitem">药物名称:{{viewform.drugName}}</div>
|
||||
<div class="nameitem">适用疾病:{{viewform.applicableDiseases}}</div>
|
||||
<div class="nameitem">手术名称:{{viewform.surgicalName}}</div>
|
||||
<div class="nameitem">检验项目:{{viewform.inspectionItems}}</div>
|
||||
<div class="nameitem">检查项目:{{viewform.checkItems}}</div>
|
||||
<div class="nameitem">人群:{{viewform.crowName}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@ -551,7 +307,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listMaterials, getMaterials, delMaterials, addMaterials, updateMaterials } from "@/api/manage/materials";
|
||||
import { listMaterials, getMaterials, delMaterials, addMaterials, updateMaterials,crowdInfo } from "@/api/manage/materials";
|
||||
import stationAcatar from "../../system/stationAvatar/index.vue";
|
||||
|
||||
export default {
|
||||
@ -560,6 +316,7 @@ export default {
|
||||
dicts: ['crowd_type', 'materials_type', 'video_cover_type'],
|
||||
data() {
|
||||
return {
|
||||
baseUrl: process.env.VUE_APP_BASE_API,
|
||||
videoState: false, // 视频播放状态
|
||||
// 学时
|
||||
studyTime: {
|
||||
@ -568,8 +325,9 @@ export default {
|
||||
},
|
||||
timer: {}, // 定时器
|
||||
pauseTimer: {}, // 暂停定时器
|
||||
checked: true,
|
||||
checked: false,
|
||||
openview: false,//预览
|
||||
viewform: [],
|
||||
activeName: 'IMAGE_TEXT',
|
||||
options: [{
|
||||
value: 'ALL',
|
||||
@ -583,13 +341,13 @@ export default {
|
||||
}],
|
||||
// 人群
|
||||
optionscrowName: [
|
||||
{
|
||||
value: '选项1',
|
||||
label: '黄金糕'
|
||||
}, {
|
||||
value: '选项2',
|
||||
label: '双皮奶'
|
||||
},
|
||||
// {
|
||||
// value: '选项1',
|
||||
// label: '黄金糕'
|
||||
// }, {
|
||||
// value: '选项2',
|
||||
// label: '双皮奶'
|
||||
// },
|
||||
|
||||
],
|
||||
optionsly: [{
|
||||
@ -612,6 +370,7 @@ export default {
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
selectedValues: [], // 存储选中的值
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
@ -632,6 +391,7 @@ export default {
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
materialsType: 'IMAGE_TEXT',
|
||||
materialsName: null,
|
||||
materialsStatus: null,
|
||||
createTime: null,
|
||||
@ -640,6 +400,21 @@ export default {
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
materialsName: [
|
||||
{ required: true, message: "素材名称不能为空", trigger: "blur" },
|
||||
],
|
||||
materialsType: [
|
||||
{ required: true, message: "素材类型不能为空", trigger: "blur" },
|
||||
],
|
||||
materialsFilePath: [
|
||||
{ required: true, message: "素材上传不能为空", trigger: "blur" },
|
||||
],
|
||||
videoCoverFilePath:[
|
||||
{ required: true, message: "视频封面不能为空", trigger: "blur" },
|
||||
],
|
||||
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -649,38 +424,70 @@ export default {
|
||||
methods: {
|
||||
// 图片/视频
|
||||
handleClick(e) {
|
||||
this.activeName = e.name
|
||||
this.queryParams.materialsType = e.name
|
||||
this.getList()
|
||||
// this.type
|
||||
console.log(e.name);
|
||||
},
|
||||
// 素材类型
|
||||
radioChange(e) {
|
||||
this.form.materialsFilePath=null
|
||||
this.form.videoCoverFilePath=null
|
||||
|
||||
console.log(e)
|
||||
|
||||
},
|
||||
// 素材上传
|
||||
imgUrl(imgUrl) {
|
||||
this.form.propagandaCoverPath = imgUrl;
|
||||
this.form.materialsFilePath = imgUrl;
|
||||
},
|
||||
// 视频
|
||||
imgUrl2(imgUrl) {
|
||||
this.videoForm.showVideoPath = process.env.VUE_APP_BASE_API + imgUrl;
|
||||
this.form.posterVideoUrl = imgUrl;
|
||||
this.form.materialsFilePath = process.env.VUE_APP_BASE_API + imgUrl;
|
||||
this.form.materialsFilePath = imgUrl;
|
||||
},
|
||||
// 视频封面
|
||||
imgUrl3(imgUrl) {
|
||||
console.log(this.form.videoCoverFilePath)
|
||||
this.form.videoCoverFilePath = imgUrl;
|
||||
|
||||
|
||||
},
|
||||
// 复选框点击事件
|
||||
changecheck(e, item) {
|
||||
this.ids = this.materialsList.map(item => item.checked ? item.id : undefined).filter(e => e)
|
||||
// console.log(this.ids)
|
||||
// console.log(item)
|
||||
// console.log(e)
|
||||
|
||||
},
|
||||
// 预览
|
||||
viewshow() {
|
||||
viewshow(item) {
|
||||
console.log(item)
|
||||
this.openview = true
|
||||
this.viewform = item
|
||||
|
||||
},
|
||||
getcrowdInfo(){
|
||||
crowdInfo().then(response=>{
|
||||
this.optionscrowName=response.data
|
||||
})
|
||||
|
||||
},
|
||||
// 人群点击事件
|
||||
crowNamechange(e){
|
||||
this.form.crowdName=this.optionscrowName.find(f=>f.id==e).crowdName
|
||||
this.form.crowdId=e
|
||||
// this.form.suitTaskTypeName=this.type.find(f=> f.dictCode==e).dictLabel
|
||||
|
||||
console.log(e)
|
||||
console.log(this.form.crowdName)
|
||||
|
||||
},
|
||||
/** 查询素材信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.params = {};
|
||||
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
|
||||
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
|
||||
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
|
||||
}
|
||||
listMaterials(this.queryParams).then(response => {
|
||||
this.materialsList = response.rows;
|
||||
this.total = response.total;
|
||||
@ -699,7 +506,7 @@ export default {
|
||||
materialsName: null,
|
||||
materialsType: "IMAGE_TEXT",
|
||||
materialsOption: 'MANUAL_UPLOAD',
|
||||
materialsFilePath: "0",
|
||||
materialsFilePath: null,
|
||||
videoCoverType: null,
|
||||
videoCoverFilePath: null,
|
||||
materialsAbstract: null,
|
||||
@ -724,11 +531,27 @@ export default {
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
if (this.daterangeCreateTime.length > 0) {
|
||||
this.queryParams.createTimeStart = this.daterangeCreateTime[0]
|
||||
this.queryParams.createTimeEnd = this.daterangeCreateTime[1]
|
||||
}
|
||||
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.daterangeCreateTime = [];
|
||||
this.queryParams={
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
materialsType: 'IMAGE_TEXT',
|
||||
materialsName: null,
|
||||
materialsStatus: null,
|
||||
|
||||
createTimeStart: null,
|
||||
createTimeEnd: null,
|
||||
|
||||
}
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
@ -743,19 +566,20 @@ export default {
|
||||
this.reset();
|
||||
console.log(this.form)
|
||||
this.open = true;
|
||||
this.getcrowdInfo()
|
||||
this.title = "添加素材信息";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
labelchange(row) {
|
||||
labelchange(item) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
|
||||
const id = row.id || this.ids
|
||||
// getMaterials(id).then(response => {
|
||||
// this.form = response.data;
|
||||
// this.open = true;
|
||||
// this.title = "修改素材信息";
|
||||
// });
|
||||
const id = item.id || this.ids
|
||||
getMaterials(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改素材信息";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
@ -779,13 +603,20 @@ export default {
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除素材信息编号为"' + ids + '"的数据项?').then(function () {
|
||||
console.log(this.ids)
|
||||
if(this.ids.length==0){
|
||||
this.$modal.msgError("请先选择一条数据");
|
||||
}else{
|
||||
const ids = this.ids;
|
||||
this.$modal.confirm('是否确认删除该素材信息?').then(function () {
|
||||
return delMaterials(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
@ -799,7 +630,7 @@ export default {
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-checkbox__inner {
|
||||
position: absolute !important;
|
||||
top: -84px;
|
||||
// top: -84px;
|
||||
left: 8px;
|
||||
}
|
||||
video {
|
||||
@ -816,6 +647,11 @@ video {
|
||||
height: 500px;
|
||||
// background: #989992;
|
||||
}
|
||||
img{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
.right {
|
||||
width: 20%;
|
||||
// background: red;
|
||||
@ -836,15 +672,16 @@ video {
|
||||
white-space: wrap;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-around;
|
||||
align-content: space-between;
|
||||
justify-content: flex-start;
|
||||
// align-content: space-between;
|
||||
.bodylist {
|
||||
width: 19%;
|
||||
height: 210px;
|
||||
height: 221px;
|
||||
border: 2px solid #e2e3e5;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
margin-bottom: 10px;
|
||||
// margin-bottom: 10px;
|
||||
margin: 6px;
|
||||
.texttitle {
|
||||
font-weight: 700;
|
||||
margin: 5px 0px 5px 10px;
|
||||
@ -867,7 +704,7 @@ video {
|
||||
right: 0px;
|
||||
right: 18px;
|
||||
color: #409eff;
|
||||
bottom: 11px;
|
||||
bottom:8px;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,41 +1,133 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="header">
|
||||
<div class="btns">
|
||||
<el-button>取消</el-button>
|
||||
<el-button type="primary" @click="signupload">签约</el-button>
|
||||
</div>
|
||||
<el-descriptions title="签约详情" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-descriptions title="患者信息" style="padding:0 30px">
|
||||
<el-descriptions-item label="患者姓名">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="年龄">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="就诊方式">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="诊断">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="住院/门诊号">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="医院">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="科室">kooriookami</el-descriptions-item>
|
||||
<el-descriptions-item label="服务包缴费状态">18100000000</el-descriptions-item>
|
||||
<el-descriptions-item label="出院/门诊时间">苏州市</el-descriptions-item>
|
||||
<el-descriptions-item label="注册时间"></el-descriptions-item>
|
||||
<el-descriptions-item label="患者姓名">{{ $route.query.patientName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ $route.query.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="年龄">{{ $route.query.age }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{ $route.query.patientPhone }}</el-descriptions-item>
|
||||
<el-descriptions-item label="就诊方式">{{
|
||||
$route.query.visitMethod == 'OUTPATIENT_SERVICE' ? '门诊' : $route.query.visitMethod == 'BE_IN_HOSPITAL' ?
|
||||
'住院' : ''
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="诊断">{{ $route.query.mainDiagnosis }}</el-descriptions-item>
|
||||
<el-descriptions-item label="住院/门诊号">{{ $route.query.admissionNumber }}{{ $route.query.outpatientNumber
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="医院">{{ $route.query.hospitalAgencyName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="科室">{{ $route.query.departmentName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="服务包缴费状态">{{ $route.query.paymentStatus == 'PAID' ? '已缴费' : '' }}
|
||||
{{ $route.query.paymentStatus == 'UNPAID_FEES' ? '未缴费' : '' }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="出院/门诊时间">{{ $route.query.patientName }}</el-descriptions-item> -->
|
||||
<!-- <el-descriptions-item label="注册时间">{{ $route.query.patientName }}</el-descriptions-item> -->
|
||||
</el-descriptions>
|
||||
<el-descriptions title="服务包信息" style="padding:0 30px">
|
||||
<el-descriptions-item label="选择服务包"></el-descriptions-item>
|
||||
<el-descriptions title="服务包信息" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm" :inline="true"
|
||||
style="padding-left:40px">
|
||||
<el-form-item label="选择服务包" prop="packageName">
|
||||
<el-input v-model="form.packageName"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-descriptions title="硬件信息" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm" :inline="true"
|
||||
style="padding-left:40px">
|
||||
<div v-for="(item, index) in form.hardwarelist" :key="index">
|
||||
<el-form-item label="硬件类型" :prop="`hardwarelist[${index}].hardwareType`"
|
||||
:rules="rules.hardwarelist.hardwareType">
|
||||
<el-select v-model="item.hardwareType" placeholder="请选择硬件类型" clearable style="width:208px">
|
||||
<el-option v-for="dict in dict.type.hardware_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="SN码" :prop="`hardwarelist[${index}].snCode`" :rules="rules.hardwarelist.snCode">
|
||||
<el-input v-model="item.snCode" placeholder="请输入设备SN码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button size="mini" @click="delhardware(index)">删除</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-button class="addbtn" type="primary" size="mini" @click="addhardware">新增硬件</el-button>
|
||||
</el-form>
|
||||
<el-descriptions title="知情同意书" style="padding:20px 30px 10px" class="descriptions">
|
||||
</el-descriptions>
|
||||
<el-upload action="https://jsonplaceholder.typicode.com/posts/" list-type="picture-card"
|
||||
style="margin-left:70px" :on-preview="handlePictureCardPreview" :on-remove="handleRemove">
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import {
|
||||
addsign
|
||||
} from '@/api/manage/newSigning.js'
|
||||
export default {
|
||||
dicts: ['hardware_type'],
|
||||
name: "newSigning",
|
||||
data() {
|
||||
return {
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
packageName: undefined,
|
||||
hardwarelist: [
|
||||
{
|
||||
snCode: '',
|
||||
hardwareType: '',
|
||||
}
|
||||
],
|
||||
},
|
||||
rules: {
|
||||
packageName: [
|
||||
{ required: true, message: '请选择服务包', trigger: 'change' }
|
||||
],
|
||||
hardwarelist: {
|
||||
snCode: [
|
||||
{ required: true, message: '请输入SN码', trigger: 'change' }
|
||||
],
|
||||
hardwareType: [
|
||||
{ required: true, message: '请选择硬件类型', trigger: 'change' }
|
||||
],
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
//签约
|
||||
signupload() {
|
||||
addsign(this.form).then(res => {
|
||||
|
||||
})
|
||||
},
|
||||
//新增硬件
|
||||
addhardware() {
|
||||
this.form.hardwarelist.push({
|
||||
snCode: '',
|
||||
hardwareType: '',
|
||||
})
|
||||
},
|
||||
delhardware(index) {
|
||||
this.form.hardwarelist.splice(index, 1);
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url;
|
||||
this.dialogVisible = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -61,6 +153,18 @@ export default {
|
||||
margin: 0 auto;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.btns {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
right: 30px;
|
||||
}
|
||||
|
||||
.addbtn {
|
||||
margin-right: 100px;
|
||||
float: right;
|
||||
transform: translateY(-200%);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -70,7 +70,7 @@
|
||||
</el-form-item> -->
|
||||
<!-- ,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END -->
|
||||
<el-form-item label="患者来源" prop="patientSource">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择就诊方式" clearable style="width:200px">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width:200px">
|
||||
<el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@ -89,7 +89,7 @@
|
||||
</el-form-item> -->
|
||||
<!-- ,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END -->
|
||||
<!-- <el-form-item label="患者来源" prop="patientSource">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择就诊方式" clearable style="width:200px">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width:200px">
|
||||
<el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
|
||||
@ -604,7 +604,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listPropaganda, getPropaganda, delPropaganda, addPropaganda, updatePropaganda, listWechatTemplateNum, copy, updateStatus } from "@/api/manage/propaganda";
|
||||
import { listPropaganda, getPropaganda, delPropaganda, addPropaganda, updatePropaganda, selectNumByDept, copy, updateStatus } from "@/api/manage/propaganda";
|
||||
import stationAcatar from "../../system/stationAvatar/index.vue";
|
||||
import { department, listDisease } from "@/api/manage/script";
|
||||
export default {
|
||||
@ -741,6 +741,11 @@ export default {
|
||||
propagandaType: [
|
||||
{ required: true, message: "宣教类型不能为空", trigger: "blur" }
|
||||
],
|
||||
propagandaCoverPath:[
|
||||
{ required: true, message: "封面不能为空", trigger: "blur" }
|
||||
|
||||
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -860,7 +865,7 @@ export default {
|
||||
// 左侧科室列表
|
||||
Departmentlist() {
|
||||
this.loading = true;
|
||||
listWechatTemplateNum(this.querydepartmen).then(response => {
|
||||
selectNumByDept(this.querydepartmen).then(response => {
|
||||
this.DepartmentoList = response.data;
|
||||
this.loading = false;
|
||||
});
|
||||
@ -1057,9 +1062,9 @@ export default {
|
||||
// },
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
if (!this.itemname) {
|
||||
this.$modal.msgError("请先选择科室");
|
||||
} else {
|
||||
// if (!this.itemname) {
|
||||
// this.$modal.msgError("请先选择科室");
|
||||
// } else {
|
||||
// this.reset();
|
||||
const id = row.id || this.ids
|
||||
getPropaganda(id).then(response => {
|
||||
@ -1070,7 +1075,7 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "修改患者宣教信息";
|
||||
});
|
||||
}
|
||||
// }
|
||||
},
|
||||
// 上传封面
|
||||
imgUrl(imgUrl) {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<el-tab-pane label="意向签约" name="INTENTIONAL_SIGNING"></el-tab-pane>
|
||||
<el-tab-pane label="服务中" name="SERVICE_CENTER"></el-tab-pane>
|
||||
<el-tab-pane label="服务结束" name="SERVICE_END"></el-tab-pane>
|
||||
<el-tab-pane label="待续签" name="WAIT_CONTINUOUS_SIGN"></el-tab-pane>
|
||||
<!-- <el-tab-pane label="待续签" name="WAIT_CONTINUOUS_SIGN"></el-tab-pane> -->
|
||||
</el-tabs>
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="70px">
|
||||
<el-form-item label="加入意向时间" prop="intentionalTimeStart" label-width="110px"
|
||||
@ -23,11 +23,11 @@
|
||||
style="width:300px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="提交时间" prop="submissionTimeStart" v-if="queryParams.serviceStatus == 'WAIT_CONTINUOUS_SIGN'">
|
||||
<!-- <el-form-item label="提交时间" prop="submissionTimeStart" v-if="queryParams.serviceStatus == 'WAIT_CONTINUOUS_SIGN'">
|
||||
<el-date-picker v-model="submissionTime" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
style="width:300px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="医院" prop="hospitalAgencyId">
|
||||
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:200px" clearable
|
||||
@clear="clearhospitalAgency" @change="changehospitalAgency">
|
||||
@ -164,12 +164,9 @@
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handlenewsign(scope.row)"
|
||||
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">签约</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
|
||||
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">忽略</el-button>
|
||||
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
|
||||
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
|
||||
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">详情</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
|
||||
v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">取消签约</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)">取消签约</el-button>
|
||||
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
|
||||
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">续约</el-button>
|
||||
</template>
|
||||
@ -182,7 +179,7 @@
|
||||
|
||||
<script>
|
||||
import { getAge } from "@/utils/age";
|
||||
import { listSignRecord, getSignRecord, delSignRecord, addSignRecord, updateSignRecord } from "@/api/manage/signRecord";
|
||||
import { listSignRecord, getSignRecord, delSignRecord, addSignRecord, updateSignRecord, updateSignStatus } from "@/api/manage/signRecord";
|
||||
import { selectAgencyList, getDepartmentList, subordinateAgencyList } from "@/api/manage/selectAgencyList";
|
||||
|
||||
export default {
|
||||
@ -365,15 +362,23 @@ export default {
|
||||
this.form = response.data;
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
/** 解约按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除签约记录编号为"' + ids + '"的数据项?').then(function () {
|
||||
return delSignRecord(ids);
|
||||
}).then(() => {
|
||||
// const ids = row.id || this.ids;
|
||||
this.$prompt('原因', '取消签约', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
}).then(({ value }) => {
|
||||
const query = {
|
||||
id: row.id,
|
||||
signStatus: 'SEPARATE_SIGN',
|
||||
separateReason: value,
|
||||
}
|
||||
updateSignStatus(query).then(res => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
this.$modal.msgSuccess("取消签约成功");
|
||||
})
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
@ -416,6 +421,8 @@ export default {
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
visitSerialNumber: row.visitSerialNumber,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
outpatientNumber: row.outpatientNumber,//门诊号
|
||||
admissionNumber: row.admissionNumber,//住院号
|
||||
departmentName: row.departmentName,
|
||||
paymentStatus: row.paymentStatus,
|
||||
sex: row.sex,
|
||||
@ -492,6 +499,25 @@ export default {
|
||||
cleardepartment() {
|
||||
this.queryParams.wardId = null
|
||||
},
|
||||
/** 详情操作 */
|
||||
handleAuthRole(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
patientId: row.id,
|
||||
cardNo: row.cardNo,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.birthDate ? getAge(row.birthDate) : ''
|
||||
},
|
||||
});
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -9,13 +9,13 @@
|
||||
controls="controls"
|
||||
>您的浏览器不支持视频播放</video>
|
||||
<img
|
||||
v-if="options.img"
|
||||
v-if="options.img&&!video.VideoPath"
|
||||
v-bind:src="options.img"
|
||||
title="点击上传图片"
|
||||
style="width: 100px; height: 100px; line-height: 200px"
|
||||
/>
|
||||
<i
|
||||
v-else-if="!options.img && !video.VideoPath"
|
||||
v-if="!options.img && !video.VideoPath"
|
||||
class="el-icon-plus avatar-uploader-icon"
|
||||
style="
|
||||
position: absolute;
|
||||
@ -62,9 +62,7 @@
|
||||
<div
|
||||
class="title"
|
||||
v-if="
|
||||
types != 'posterVideoUrl' &&
|
||||
types != 'posterPictureUrl' &&
|
||||
types != 'itemDirectoryUrl'
|
||||
types == 'materialsCoverUrl'|| types == 'propagandaCoverUrl'
|
||||
"
|
||||
>请上传图片为800x800px的正方形</div>
|
||||
</el-col>
|
||||
@ -167,12 +165,15 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.types = this.type;
|
||||
console.log(this.types)
|
||||
|
||||
this.items = this.item;
|
||||
if (this.tovideo == null) {
|
||||
this.video.VideoPath = null;
|
||||
} else if (this.tovideo == "") {
|
||||
this.video.VideoPath = null;
|
||||
} else {
|
||||
console.log(this.tovideo)
|
||||
this.video.VideoPath = process.env.VUE_APP_BASE_API + this.tovideo;
|
||||
}
|
||||
if (this.img == null) {
|
||||
@ -182,7 +183,7 @@ export default {
|
||||
} else {
|
||||
this.options.img = process.env.VUE_APP_BASE_API + this.img;
|
||||
}
|
||||
if (this.types == "posterVideoUrl" || this.types == "itemDirectoryUrl") {
|
||||
if (this.types == "materialsVideoUrl" || this.types == "itemDirectoryUrl") {
|
||||
this.title = "上传视频";
|
||||
} else {
|
||||
this.title = "上传图片";
|
||||
@ -249,7 +250,7 @@ export default {
|
||||
// 上传预处理
|
||||
beforeUpload(file) {
|
||||
console.log(file)
|
||||
if (this.types == "posterVideoUrl" || this.types == "itemDirectoryUrl") {
|
||||
if (this.types == "materialsVideoUrl") {
|
||||
const reader = new FileReader();
|
||||
this.previews.data = file;
|
||||
this.videoForm.showVideoPath = URL.createObjectURL(file);
|
||||
@ -354,6 +355,35 @@ export default {
|
||||
});
|
||||
|
||||
}
|
||||
// 素材图片上传
|
||||
else if(this.types == "materialsCoverUrl"){
|
||||
uploadFilefm(formData).then(response => {
|
||||
if (response.code == 200) {
|
||||
this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
|
||||
this.$emit("imgUrl", response.imgUrl);
|
||||
this.openimg = false;
|
||||
} else {
|
||||
setTimeout(e => {
|
||||
this.openimg = false;
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
// 素材视频上传
|
||||
else if(this.types == "materialsVideoUrl"){
|
||||
uploadFilefm(formData).then(response => {
|
||||
if (response.code == 200) {
|
||||
this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
|
||||
this.$emit("imgUrl", response.imgUrl);
|
||||
this.openimg = false;
|
||||
} else {
|
||||
setTimeout(e => {
|
||||
this.openimg = false;
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
else {
|
||||
updateNurseStationHeads(formData).then(response => {
|
||||
if (response.code == 200) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user