提交 ed38125c 编写于 作者: guangjun.yang's avatar guangjun.yang

初始化学习时间长

Merge branch 'dev-mvp-20200331' into release

* dev-mvp-20200331: (64 commits)
  初始化学习时间长
  查询条件修改
  拒绝后该项目将从列表中消失
  确认通过该项目模版审核吗?
  下架后,用户新建项目则无法看到该模版
  弹框等权限
  全部及时间问题
  将原来的学情报告中的跳转地址变为项目管理地址
  已经上架了,都不能编辑
  修复未加入机构提示和获取发起机构字段
  设置两个时间控件
  时间间隔问题
  优化删除按钮显示逻辑
  isRoleOfOuter参数获取问题
  查看模板项目的时候,点击下一步和完成不需要调用接口
  查看模板编辑详情时,发起机构将无法增减
  解决暂存,模板详情样式,完成按钮提示问题
  发现了一个bug
  修改项目结束时间提示
  增加编辑页面的导航跳转
  ...

# Conflicts:
#	src/utils/env-config.js
......@@ -10,6 +10,7 @@
<meta name="format-detection" content="telephone=no">
<meta name="full-screen" content="yes">
<meta name="x5-fullscreen" content="true">
<meta name="referrer" content="no-referrer" />
<title>云鹊医工作站</title>
</head>
<body id="appBody">
......
......@@ -9075,6 +9075,11 @@
"integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==",
"dev": true
},
"vue-ueditor-wrap": {
"version": "2.4.1",
"resolved": "http://192.168.110.93:4873/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.1.tgz",
"integrity": "sha512-UjZz0I5Fy8ADrmvjCqTJm+XJVkf52hi6/yajcTyjqG20DTS2IVByFF26TI69by9PZApwbC+eHkV/lALcvEFgjw=="
},
"vuex": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz",
......
......@@ -35,6 +35,7 @@
"vue": "^2.1.0",
"vue-infinite-scroll": "^2.0.2",
"vue-router": "^2.1.1",
"vue-ueditor-wrap": "^2.4.1",
"vuex": "^2.0.0"
},
"devDependencies": {
......
......@@ -140,6 +140,7 @@ export default {
vm.changeIdType(res.data.idType)
vm.changeMaster(res.data.masterAdministratorFlag)
localStorage.setItem('storageIdType', res.data.idType)
localStorage.setItem('isRoleOfOuter', res.data.isRoleOfOuter)
localStorage.setItem('storageMaster', res.data.masterAdministratorFlag)
vm.idType = res.data.idType
vm.storageIdType = res.data.idType
......
此差异已折叠。
<template>
<div class="dialog">
<el-dialog
:title="dialogObj.title"
:show-close=false
:visible.sync="dialogObj.visible"
:close-on-click-modal="false"
width="600px"
center>
<p style="text-align: center;">{{dialogObj.message}}</p>
<p class="tip" v-if="dialogObj.tip">{{dialogObj.tip}}</p>
<span slot="footer" class="dialog-footer">
<el-button @click="confirm" v-if="dialogObj.confirmMsg">{{dialogObj.confirmMsg}}</el-button>
<el-button type="primary" @click="hide" v-if="dialogObj.hideMsg">{{dialogObj.hideMsg}}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
props: {
dialogObj: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
}
},
created() {},
methods: {
confirm() {
this.$emit('confirm');
},
hide() {
this.$emit('hide');
}
}
}
</script>
<style lang="scss" scoped>
.tip {
margin-top: 20px;
text-align: center;
color: #C0C0C0;
}
</style>
<!--生态圈-->
<template>
<div class="ecology">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline">
<el-form-item label>
<el-select
size="small"
v-model="formEcology.ecology"
placeholder="选择小生态"
@change="selectChangeEcology"
:disabled="status4Flag == 1"
>
<el-option
v-for="item in ecologySelect"
:key="item.id"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<span class="span_ecology">{{ checkedEcology }}</span>
</el-form>
<el-table
class="rim"
ref="multipleEcology"
:data="tableEcology"
tooltip-effect="dark"
style="width: 100%"
>
<el-table-column
type="selection"
width="55"
:selectable="selectableTableEcology"
:reserve-selection="true"
></el-table-column>
<el-table-column prop="name" label="医院名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospitalLevelName" label="医院级别" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有机构信息!</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeEcology"
@current-change="handleCurrentEcology"
:current-page="formEcology.pageNum"
:page-sizes="[10, 20, 40]"
:page-size="formEcology.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalEcology"
></el-pagination>
</div>
</div>
</template>
<script>
let vm = null;
import { doUpload, getFilePath } from "../../../utils/qiniu-util";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../../utils/utils";
import * as commonUtil from "../../../utils/utils";
import * as operationData from "../../../utils/operation";
import { getExeclUrl } from "@/utils/index";
import {
uploadOrgExcel,
uploadPersonExcel
} from "@/utils/education/educationApi";
import Sortable from "sortablejs";
export default {
data() {
return {
formOrganization: {
name: "",
administrativeId: "0",
administrativeIdList: ["0"],
level: "-1",
chechAll: true,
pageNum: 1,
pageSize: 10
},
status4Flag: '',
checkedEcology: "",
ecologySelect: [],
formEcology: {
ecology: "",
pageNum: 1,
pageSize: 10
},
totalEcology: 0,
tableEcology: [],
checkTableEcology: "",
getRowKeysEcology(row) {
return row.id;
},
lookedEcology: [],
changedEcology: [],
changedEcology2: [],
projectId: 623
}
},
created() {
vm = this;
this.getEcologySelect();
},
methods: {
//选择小生态
selectChangeEcology(value) {
this.formEcology.pageNum = 1;
//console.log('select',value);
for (let i = 0; i < this.ecologySelect.length; i++) {
if (this.ecologySelect[i].value == value) {
this.checkedEcology = this.ecologySelect[i].label;
}
}
this.formEcology.ecology = value;
this.getEcology();
},
getEcologySelect() {
let req = {};
vm
.GET("portal/scope/v1/" + this.projectId + "/ecology", req)
.then(res => {
console.log("查询小生态列表", res);
this.ecologySelect = operationData.getEcologySelect(res.data.list);
if (res.data.chooseIdList.length > 0) {
this.formEcology.ecology = res.data.chooseIdList[0];
this.getEcology();
}
});
},
//获取小生态数据
getEcology() {
let req = {};
req = this.formEcology;
openLoading(vm);
vm
.GET("portal/scope/v1/" + this.projectId + "/organization", req)
.then(res => {
closeLoading(vm);
console.log("根基小生态查询机构列表信息", res);
this.tableEcology = res.data.organizationList;
this.totalEcology = res.data.total;
let tableStatus = this.tableEcology;
tableStatus.forEach(row => {
this.$refs.multipleEcology.toggleRowSelection(row);
});
});
},
// 初始化小生态
initEcology() {
let tableStatus = this.tableEcology;
if (typeof tableStatus === "undefined") {
return;
}
tableStatus.forEach(row => {
let idList = [];
idList[0] = row.id;
let intersect = operationData.getIntersect(idList, this.changedEcology);
let intersect2 = operationData.getIntersect(
idList,
this.changedEcology2
);
if (intersect.length > 0) {
//选中
} else if (intersect2.length > 0) {
//不选
} else {
if (row.status == 1) {
this.$nextTick(function() {
this.$refs.multipleEcology.toggleRowSelection(row);
});
}
}
});
},
// 选择生态table
selectableTableEcology(row, index) {
return false;
},
//科室table修改(分页相关)
handleSizeEcology(val) {
console.log(`每页 ${val} 条`);
this.formEcology.pageSize = val;
this.getEcology();
},
//科室table修改(分页相关)
handleCurrentEcology(val) {
console.log(`当前页: ${val}`);
this.formEcology.pageNum = val;
this.getEcology();
},
}
}
</script>
<style lang="scss" scoped>
</style>
//
<template>
<div class="select-people">
<el-tab-pane label="设定人员" name="fourth">
<el-form :inline="true" :model="formPerson" class="demo-form-inline">
<el-form-item label>
<el-input size="small" v-model="formPerson.hospitalName" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item label>
<el-input size="small" v-model="formPerson.doctorName" placeholder="请输入人员名称"></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchPeople">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="resetOrgOrPerson('person')">重置</el-button>
</el-form-item>
<el-form-item style="float:right;">
<el-upload
v-if="idType == 1 && status4Flag != 1"
class="upload-excel"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadPerson"
>
<el-button size="small">导入人员名单</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('person')">下载导入模板</el-button>
</el-upload>
<div v-if="idType == 1 && status4Flag == 1">
<el-button size="small" @click="dialogUpload = true">导入人员名单</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('person')">下载导入模板</el-button>
</div>
</el-form-item>
</el-form>
<el-table
class="rim"
ref="multiplePerson"
:data="tablePerson"
tooltip-effect="dark"
style="width: 100%"
@select-all="selectAllPerson"
@select="selectPerson"
>
<el-table-column
type="selection"
width="55"
:selectable="selectableTableList"
></el-table-column>
<el-table-column prop="name" label="人员名称" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="所属医院" align="center"></el-table-column>
<el-table-column prop="departmentName" label="所属科室" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png">
<p>没有人员信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizePerson"
@current-change="handleCurrentPerson"
:current-page="formPerson.pageNum"
:page-sizes="[10, 20, 40]"
:page-size="formPerson.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalPerson"
></el-pagination>
</div>
</el-tab-pane>
</div>
</template>
<script>
export default {
data() {
return {
getRowKeysPerson(row) {
return row.id;
},
formPerson: {
hospitalId: 0,
departmentId: -1,
doctorName: "",
hospitalName: "",
pageNum: 1,
pageSize: 10
},
hospitalList: [],
departmentList: [],
tablePerson: new Array(),
multipleSelectionPerson: [],
currentPerson: 1,
pageSizePerson: 2,
totalPerson: 10,
updatedPerson: false,
lookedPerson: [],
changedPerson: [],
changedPerson2: [],
}
},
created() {},
methods: {
//选择搜索机构方式
searchPeople() {
this.formPerson.pageNum = 1;
let searchForm = this.formPerson;
if (searchForm.hospitalName === "" && searchForm.doctorName === "") {
this.searchPeopleType = "";
this.getPeople();
} else {
this.searchPeopleType = "choose";
this.getPeopleChoose();
}
},
}
}
</script>
<style lang="scss" scoped>
</style>
此差异已折叠。
此差异已折叠。
此差异已折叠。
<!--步骤-->
<template>
<div class="step-content-compontent">
<el-row class="step-content">
<el-col :span="12">
<el-steps :active="active" simple class>
<span class="step-num" v-bind:class="{ 'on-step': active==0 }">1</span>
<el-step title="基础信息"></el-step>
<span class="step-num" v-bind:class="{ 'on-step': active==1 }">2</span>
<el-step title="选择项目组件">3</el-step>
</el-steps>
</el-col>
<el-col :span="7" :offset="5">
<el-button v-if="!fished" size="small" type="primary" @click="nextStep">下一步</el-button>
<el-button v-if="fished" size="small" type="primary" @click="complete">发布</el-button>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
props: {
active: {
type: Number,
default: 0,
},
fished: {
type: Boolean,
default: false,
}
},
data() {
return {
}
},
created() {},
methods: {
nextStep() {
this.$emit('nextStep')
},
complete() {
this.$emit('complete')
}
}
}
</script>
<style lang="scss">
.step-content-compontent {
background: #fff;
z-index: 1001;
background: #fff;
position: fixed;
right: 30px;
left: 285px;
.step-content {
overflow: hidden;
height: 60px;
// margin-top: 66px;
padding: 15px 0 50px 0;
border-bottom: 1px solid #efefef;
.is-text {
display: none;
}
.el-steps--simple {
background: #fff;
}
.button-green {
color: #ffffff;
background: #449284;
border-color: #bfdad5;
border-radius: 2px;
}
.button-white {
color: #606266;
background: #ffffff;
border-color: #ecedf1;
border-radius: 2px;
}
.step-num {
display: block;
// margin-top: 1.5px;
font-size: 12px;
border: 1px solid #999 !important;
border-radius: 50%;
width: 25px;
height: 18px;
line-height: 16px;
text-align: center;
color: #999;
}
.el-step__title.is-wait {
color: #999;
}
.el-step__title.is-process {
color: #449284;
}
.is-finish {
color: #999 !important;
}
.on-step {
color: #449284;
border: 1px solid #449284 !important;
}
}
}
</style>
此差异已折叠。
此差异已折叠。
......@@ -17,18 +17,18 @@ const editCme = r => require.ensure([], () => r(require('../views/education/edit
import patientsRouters from './patients'
import followRouters from './follow'
const reportLisOld = r => require.ensure([], () => r(require('../views/learning-o/report-list.vue')), 'report-list-old')
const itemListOld = r => require.ensure([], () => r(require('../views/learning-o/item-list.vue')), 'item-list-old')
const nameListOld = r => require.ensure([], () => r(require('../views/learning-o/name-list.vue')), 'name-list-old')
const dataAlignmentOld = r => require.ensure([], () => r(require('../views/learning-o/data-alignment.vue')), 'data-alignment-old')
const exportDownloadOld = r => require.ensure([], () => r(require('../views/learning-o/export-download.vue')), 'export-download-old')
const reportLis = r => require.ensure([], () => r(require('../views/learning/report-list.vue')), 'report-list')
const itemList = r => require.ensure([], () => r(require('../views/learning/item-list.vue')), 'item-list')
const nameList = r => require.ensure([], () => r(require('../views/learning/name-list.vue')), 'name-list')
const dataAlignment = r => require.ensure([], () => r(require('../views/learning/data-alignment.vue')), 'data-alignment')
const exportDownload = r => require.ensure([], () => r(require('../views/learning/export-download.vue')), 'export-download')
const reportLisOld = r => require.ensure([], () => r(require('../views/learning-o/report-list.vue')), 'report-list')
const itemListOld = r => require.ensure([], () => r(require('../views/learning-o/item-list.vue')), 'item-list')
const nameListOld = r => require.ensure([], () => r(require('../views/learning-o/name-list.vue')), 'name-list')
const dataAlignmentOld = r => require.ensure([], () => r(require('../views/learning-o/data-alignment.vue')), 'data-alignment')
const exportDownloadOld = r => require.ensure([], () => r(require('../views/learning-o/export-download.vue')), 'export-download')
const itemShield = r => require.ensure([], () => r(require('../views/education/item-shield.vue')), 'item-shield')
const entryManager = r => require.ensure([], () => r(require('../views/education/entry-manager.vue')), 'entry-manager')
const editEntry = r => require.ensure([], () => r(require('../views/education/edit-entry.vue')), 'edit-entry')
......@@ -39,6 +39,11 @@ const reviewAccessManage = r => require.ensure([], () => r(require('../views/cme
const creditSendManage = r => require.ensure([], () => r(require('../views/cme/credit-send-manage.vue')), 'credit-send-manage')
const applyDetail = r => require.ensure([], () => r(require('../views/cme/apply-detail.vue')), 'apply-detail')
const templateManager = r => require.ensure([], () => r(require('../views/education/template-manager.vue')), 'ctemplate-manager')
const templateEditor = r => require.ensure([], () => r(require('../views/education/template-editor.vue')), 'template-editor')
const templateOpen = r => require.ensure([], () => r(require('../views/education/template-open.vue')), 'templateOpen')
const eduRole = r => require.ensure([], () => r(require('../views/education/edu-role.vue')), 'edu-role')
export default [{
path: '/',
component: App,
......@@ -159,6 +164,22 @@ export default [{
path: '/apply-detail',
component: applyDetail,
},
{
path: '/template-manager',
component: templateManager
},
{
path: '/template-editor',
component: templateEditor
},
{
path: '/template-open',
component: templateOpen
},
{
path: '/edu-role',
component: eduRole
},
// {
// path: '/followup',
// name: 'followUp',
......
......@@ -35,7 +35,7 @@ export const envConfig = {
// reportUrl: 'https://dev-sc-report.yunqueyi.com/',
excelUrl: 'https://dev-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://dev-cms.yunqueyi.com/',
cmsUrl: ' https://dev-cms.yunqueyi.com/',
},
dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/',
......@@ -53,7 +53,7 @@ export const envConfig = {
reportUrl: 'https://dev-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://dev-cms.yunqueyi.com/',
cmsUrl: ' https://dev-cms.yunqueyi.com/',
},
test: {
baseUrl: 'https://test1-sc.yunqueyi.com/',
......@@ -71,7 +71,7 @@ export const envConfig = {
reportUrl: 'https://test1-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://test1-cms.yunqueyi.com/',
cmsUrl: ' https://test1-cms.yunqueyi.com/',
},
test2: {
baseUrl: 'https://test2-work.yunqueyi.com/sc/',
......@@ -88,7 +88,7 @@ export const envConfig = {
reportUrl: 'https://test2-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://test2-cms.yunqueyi.com/',
cmsUrl: ' https://test2-cms.yunqueyi.com/',
},
uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/',
......@@ -106,7 +106,7 @@ export const envConfig = {
reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://uat-cms.yunqueyi.com/',
cmsUrl: ' https://uat-cms.yunqueyi.com/',
},
pro: {
baseUrl: 'https://sc.yunqueyi.com/',
......@@ -124,6 +124,6 @@ export const envConfig = {
reportUrl: 'https://sc-report.yunqueyi.com/',
excelUrl: 'https://file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
cmsUrl: ' http://cms.yunqueyi.com/',
cmsUrl: ' https://cms.yunqueyi.com/',
}
}
......@@ -55,8 +55,8 @@ service.interceptors.request.use(config => {
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = '29D71EAAB92E4580AFB16A8011BE7206';
// config.headers['token'] = '3167CD6495A14C14AEF28AB99F69984D';
config.headers['token'] = localStorage.getItem('storageToken')
config.headers['token'] = 'FC436958A7344D2A8C86E2857CBBAF3A';
// config.headers['token'] = localStorage.getItem('storageToken')
}else{
config.headers['token'] = localStorage.getItem('storageToken')
}
......
此差异已折叠。
let tableOrganization = [{
name: "上海市第一人民医院",
grade: "一甲医院",
province: "上海市",
city: "上海市",
district: "浦东新区",
street: "张江街道"
}, {
name: "上海市第二人民医院",
grade: "二甲医院",
province: "上海市",
city: "上海市",
district: "浦东新区",
street: "张江街道"
}, {
name: "上海市第三人民医院",
grade: "三甲医院",
province: "上海市",
city: "上海市",
district: "浦东新区",
street: "张江街道"
}];
let tablePerson = [{
name: "云小鹊",
hospital: "上海市第一人民医院",
department: "全科",
province: "上海市",
city: "上海市",
district: "浦东新区"
}, {
name: "云小鹊",
hospital: "上海市第二人民医院",
department: "全科",
province: "上海市",
city: "上海市",
district: "长宁区"
}, {
name: "云小鹊",
hospital: "上海市第三人民医院",
department: "全科",
province: "上海市",
city: "上海市",
district: "南汇区"
}];
let treeData = [
{
id: 11,
name: "一级 1",
label: "一级 1",
isLeaf: "true",
children: [
{
id: 1,
label: "一级 1",
isLeaf: "true",
children: [
{
id: 4,
label: "二级 1-1",
children: [
{
id: 9,
label: "三级 1-1-1"
},
{
id: 10,
label: "三级 1-1-2"
}
]
}
]
},
{
id: 2,
label: "一级 2",
children: [
{
id: 5,
label: "二级 2-1",
children: [],
},
{
id: 6,
label: "二级 2-2",
isLeaf: false,
}
]
},
{
id: 4,
label: "一级 4",
isLeaf: false,
},
{
id: 3,
label: "一级 3",
children: [
{
id: 7,
label: "二级 3-1"
},
{
id: 8,
label: "二级 3-2"
}
]
}
]
}
];
// 按钮type类型: 0-编辑
// 1-暂存 2-完成 3-上架 4-通过 5-下架 6-拒绝
// 7- 提醒审核 8(2)-取消审核 9-删除
let buttonStatusIn = [
//L1 内部管理员 L2项目负责人 L3次级负责人
//草稿
{ L1: "09", L2: "", L3: "" },
//未上架
{ L1: "039", L2: "039", L3: "0" },
//待审核、审批中
{ L1: "46", L2: "78", L3: "" },
//已上架
{ L1: "05", L2: "05", L3: "0" },
//已下架
{ L1: "039", L2: "039", L3: "0" },
//已拒绝/未上架
{ L1: "039", L2: "039", L3: "0" },
];
let buttonStatusOut = [
//L1 内部管理员 L2项目负责人 L3次级负责人
//草稿
{ L1: "", L2: "09", L3: "" },
//未上架
{ L1: "09", L2: "039", L3: "0" },
//待审核、审批中
{ L1: "46", L2: "78", L3: "" },
//已上架
{ L1: "05", L2: "05", L3: "0" },
//已下架
{ L1: "039", L2: "039", L3: "0" },
//已拒绝/未上架
{ L1: "09", L2: "039", L3: "0" },
];
export function returnData() {
let data = {};
data.tableOrganization = tableOrganization;
data.tablePerson = tablePerson;
data.treeData = treeData;
data.buttonStatusIn = buttonStatusIn;
data.buttonStatusOut = buttonStatusOut;
return data;
}
\ No newline at end of file
......@@ -111,36 +111,36 @@ let treeData = [
];
// 按钮type类型: 0-编辑
// 1-暂存 2-完成 3-上架 4-通过 5-下架 6-拒绝
// 7- 提醒审核 8(2)-取消审核 9-删除
// 7- 提醒审核 8(2)-取消审核 9-删除 A-学情报告
let buttonStatusIn = [
//L1 内部管理员 L2项目负责人 L3次级负责人
//草稿
{ L1: "09", L2: "", L3: "" },
{ L1: "09", L2: "", L3: "A" },
//未上架
{ L1: "039", L2: "039", L3: "0" },
{ L1: "039", L2: "039", L3: "A" },
//待审核、审批中
{ L1: "46", L2: "78", L3: "" },
{ L1: "46", L2: "78", L3: "A" },
//已上架
{ L1: "05", L2: "05", L3: "0" },
{ L1: "05", L2: "05", L3: "A" },
//已下架
{ L1: "039", L2: "039", L3: "0" },
{ L1: "039", L2: "039", L3: "A" },
//已拒绝/未上架
{ L1: "039", L2: "039", L3: "0" },
{ L1: "039", L2: "039", L3: "A" },
];
let buttonStatusOut = [
//L1 内部管理员 L2项目负责人 L3次级负责人
//草稿
{ L1: "", L2: "09", L3: "" },
{ L1: "", L2: "09", L3: "A" },
//未上架
{ L1: "09", L2: "039", L3: "0" },
{ L1: "09", L2: "039", L3: "A" },
//待审核、审批中
{ L1: "46", L2: "78", L3: "" },
{ L1: "46", L2: "78", L3: "A" },
//已上架
{ L1: "05", L2: "05", L3: "0" },
{ L1: "5", L2: "5", L3: "A" },
//已下架
{ L1: "039", L2: "039", L3: "0" },
{ L1: "039", L2: "039", L3: "A" },
//已拒绝/未上架
{ L1: "09", L2: "039", L3: "0" },
{ L1: "09", L2: "039", L3: "A" },
];
export function returnData() {
let data = {};
......
<--教培项目授权-->
<template>
<div class="template-manager-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<div class="header-title">发起教培项目赋权</div>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;">
<el-form ref="formInline" :model="formInline" label-width="75px" style="width:100%;">
<el-col :span="10">
<el-form-item label="手机号:">
<el-input v-model="formInline.mobilePhone" size="small" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" style="padding:0;text-align:right;padding-right:15px;">
<el-button type="primary" size="small" @click="searchList">查询</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button>
</el-col>
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="用户名" align="center"></el-table-column>
<el-table-column prop="mobilePhone" label="手机号" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="所属机构" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属地区" align="center">
<template slot-scope="scope">
<span>{{ scope.row.provinceName }}{{ scope.row.cityName }}{{ scope.row.countyName }}{{ scope.row.townName }}</span>
</template>
</el-table-column>
<el-table-column prop="projectStatus" label="权限状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.roleFlag ? '已开通' : '未开通' }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" align="center">
<template slot-scope="scope">
<el-button
@click="changeStatus(scope.row,0)"
v-if="scope.row.roleFlag == false"
type="primary"
size="small"
>开通权限</el-button>
<el-button
@click="changeStatus(scope.row,1)"
v-if="scope.row.roleFlag == true"
type="primary"
size="small"
>关闭权限</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png">
<p class="text">没有搜索到该手机号,请重新搜索</p>
</div>
</div>
</el-table >
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="formInline.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-size="formInline.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
<!-- 修改状态 -->
<el-dialog
:title="changeStatusConfig.title"
:show-close=false
:visible.sync="changeStatusVisible"
:close-on-click-modal="false"
width="600px"
center>
<p style="text-align: center;">{{changeStatusConfig.message}}</p>
<span slot="footer" class="dialog-footer">
<el-button @click="changeStatusVisible=false">取 消</el-button>
<el-button type="primary" @click="changeStatusConfirm">确 认</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
let vm = null;
export default {
data() {
return {
curmbFirst: "角色权限",
curmbSecond: "发起教培项目赋权",
formInline: {
mobilePhone: '',
pageSize: 10,
pageNo: 1
},
tableData: [],
totalRows: 10,
changeStatusVisible: false,
doctorId: 0,
needChangeStatus: true,
changeStatusConfig: {
title: '确认要开通权限操作吗?',
message: '一旦开通,该用户可查看并创建外部教培项目',
},
idType: 1 //idType 1为内部项目,其他为外部项目
}
},
components: {
BreadCrumb,
},
created() {
vm = this;
vm.idType = localStorage.getItem('storageIdType');
this.searchList();
},
mounte() {
commonUtil.resizeHeight();
},
methods: {
// 查询列表
searchList() {
let req = {};
req = vm.formInline;
openLoading(vm);
vm.GET("portal/portalProjectOrRole/doctor/list", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.tableData = res.data.doctorList;
vm.totalRows = res.data.totalCnt;
}
});
},
// 重置搜索
resetForm() {
vm.formInline.mobilePhone = '';
},
// 已开通: true; 未开通: false;
changeStatus(row) {
vm.doctorId = row.doctorId;
vm.needChangeStatus = row.roleFlag ? false : true;
let title = '', message = '';
if(!row.roleFlag) {
title = '确认要开通权限操作吗?';
message = '一旦开通,该用户可查看并创建外部教培项目';
} else { // 拒绝
title = '确认要关闭权限操作吗?';
message = '一旦关闭,该用户则无法查看外部教培项目';
}
vm.changeStatusConfig.title = title;
vm.changeStatusConfig.message = message;
vm.changeStatusVisible = true;
},
// 改变状态
changeStatusConfirm() {
let req = {
doctorId: vm.doctorId,
roleFlag: vm.needChangeStatus
};
openLoading(vm);
vm.POST("portal/portalProjectOrRole/doctor/role", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.changeStatusVisible = false;
vm.searchList();
}
});
},
handleSizeChange(val) {
this.formInline.pageSize = val;
vm.searchList();
},
handleCurrentChange(val) {
this.formInline.pageNo = val;
vm.searchList();
},
}
}
</script>
<style lang="scss" scoped>
.template-manager-wrap {
.component-content {
background: #fff;
padding: 10px;
.header-title {
padding: 10px 12px 10px 0;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
.table-empty {
.text {
position: relative;
top: -100px;
left: 6px;
}
}
}
}
</style>
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
......@@ -153,7 +153,7 @@ export default {
curmbFirst: "学情报告",
curmbSecond: "项目列表",
curmbThird: "",
jumPathThird: "/report-list",
jumPathThird: "/item-manager",
projectId: "",
projectName: "",
exportStatus: false,
......
......@@ -134,7 +134,7 @@ export default {
curmbSecond: "项目管理",
curmbThird: "",
curmbFouth: "",
jumPathThird: "/report-list",
jumPathThird: "/item-manager",
jumPathFouth: "",
formData: {
doctorName: "",
......
......@@ -248,10 +248,10 @@ export default {
},
data() {
return {
curmbFirst: "学情报告",
curmbSecond: "项目列表",
curmbFirst: "教培项目",
curmbSecond: "项目管理",
curmbThird: "",
jumPathThird: "/report-list",
jumPathThird: "/item-manager",
projectId: "",
projectName: "",
exportStatus: false,
......@@ -384,7 +384,7 @@ export default {
vm.getDisplay();
vm.curmbSecond = "项目列表";
vm.jumPathThird = "/report-list";
vm.jumPathThird = "/item-manager";
}
if(vm.downloadId != null) {
vm.staticData = 1;
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册