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

Merge branch 'dev-coop-phase3-0830' into release

......@@ -21,6 +21,8 @@ const nameList = r => require.ensure([], () => r(require('../views/learning/name
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 itemShield = r => require.ensure([], () => r(require('../views/education/item-shield.vue')), 'item-shield')
export default [{
path: '/',
component: App,
......@@ -77,6 +79,10 @@ export default [{
path: '/export-download',
component: exportDownload
},
{
path: '/item-shield',
component: itemShield,
},
{
path: '/msg-push',
component: msgPush,
......
......@@ -235,4 +235,21 @@ html,body{
.el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: #449284 !important;
border-color: #449284 !important;
}
//popover组件的特殊处理
.el-popover {
::-webkit-scrollbar
{
width: 4px;
height: 10px;
background-color: #D8D8D8;
}
::-webkit-scrollbar-thumb {
background-color: #D8D8D8;
}
.more-text {
padding: 0 5px 0 5px;
max-height: 55px;
overflow-y: scroll;
}
}
\ No newline at end of file
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index';
export const uploadExcel = (data,projectId) => {
// return utils.checkAuth(()=>{
return fetch({
headers: {
'Content-Type': 'application/json;charset=UTF-8',
sysCode: 12,
token: localStorage.getItem('storageToken'),
},
url: getBaseUrl('portal/portalProjectOrRole/importRoleFile?projectId='+projectId),
method: 'post',
data: data,
description: '上传excel文件',
})
// })
}
\ No newline at end of file
......@@ -30,6 +30,7 @@ export const envConfig = {
reportUrl: 'https://dev-sc-report.yunqueyi.com/',
// reportUrl: 'https://test1-sc-report.yunqueyi.com/',
// reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
},
dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/',
......@@ -45,6 +46,7 @@ export const envConfig = {
workApiUrl: 'https://dev-work.yunqueyi.com/web',
workApiSrc: 'https://dev-work.yunqueyi.com',
reportUrl: 'https://dev-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
},
test: {
baseUrl: 'https://test1-sc.yunqueyi.com/',
......@@ -60,6 +62,7 @@ export const envConfig = {
workApiUrl: 'https://test1-work.yunqueyi.com/web',
workApiSrc: 'https://test1-work.yunqueyi.com',
reportUrl: 'https://test1-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
},
test2: {
baseUrl: 'https://test2-work.yunqueyi.com/sc/',
......@@ -74,6 +77,7 @@ export const envConfig = {
workApiUrl: 'https://test2-work.yunqueyi.com/web',
workApiSrc: 'https://test2-work.yunqueyi.com',
reportUrl: 'https://test2-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
},
uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/',
......@@ -89,6 +93,7 @@ export const envConfig = {
workApiUrl: 'https://uat-work.yunqueyi.com/web',
workApiSrc: 'https://uat-work.yunqueyi.com',
reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
},
pro: {
baseUrl: 'https://sc.yunqueyi.com/',
......@@ -104,5 +109,6 @@ export const envConfig = {
workApiUrl: 'https://work.yunqueyi.com/web',
workApiSrc: 'https://work.yunqueyi.com',
reportUrl: 'https://sc-report.yunqueyi.com/',
excelUrl: 'https://file.yunqueyi.com/File/template/portal/',
}
}
......@@ -236,5 +236,39 @@ const vueFilter = {
let time = value +'分钟';
return time;
},
shieldStatus: (value) => {
if(value == 0) {
return '已屏蔽';
} else if(value == 1) {
return '未屏蔽';
}
},
shieldButton: (value) => {
if(value == 0) {
return '取消屏蔽';
} else if(value == 1) {
return '屏蔽';
}
},
areaText: (value) => {
let text = '-';
if(value.regions.length == 0) {
text = '-'
} else if(value.regions.length == 1) {
text = value.regions[0];
} else if(value.regions.length > 1){
let len = value.regions.length;
text = value.regions[0]+'('+len+')';
}
return text;
},
areaList: (value) => {
let list = '';
for(let i=0; i<value.length ; i++) {
list += value[i]+'、';
}
list = list.substring(0, list.length - 1);
return list
},
}
export default vueFilter
\ No newline at end of file
......@@ -210,4 +210,9 @@ function getConfigByEnvType(urlType) {
// 获取report服务器域名地址
export function getReportUrl(url) {
return getConfigByEnvType('reportUrl') + url
}
// 获取SC服务器域名地址
export function getExeclUrl(url) {
return getConfigByEnvType('excelUrl') + url
}
\ No newline at end of file
......@@ -285,6 +285,7 @@ export function isOverlap(startA, endA, startB, endB) {
}
export function setRegionOption(data) {
let option = [];
option[0] = {id: 0, value: 0, label: "全部", leaf: true};
for (let i = 0; i < data.length; i++) {
let obj = data[i];
obj.label = data[i].provinceName;
......@@ -483,11 +484,20 @@ export function getSearchType(formData,checkAll) {
let type = 0;
if (formData.region.length == 1 || formData.region.length == 2) {
type = formData.region.length;
if(formData.region.length == 1 && formData.region[0] == 0) {
type = 6;
}
} else if (formData.region.length == 3) {
if (formData.organization.length == 0 || checkAll === true) {
type = 3;
} else {
type = 4
type = 4;
}
} else if (formData.region.length == 4) {
if (formData.organization.length == 0 || checkAll === true) {
type = 5;
} else {
type = 4;
}
}
return type;
......@@ -578,4 +588,39 @@ export function getComponent(data) {
list.push(data[i].value);
}
return list;
}
export function getSimpleCheckedNodes(store) {
const checkedNodes = [];
const traverse = function(node) {
const childNodes = node.root ? node.root.childNodes : node.childNodes;
childNodes.forEach(child => {
if (child.checked) {
checkedNodes.push(child.data);
}
if (child.indeterminate) {
traverse(child);
}
});
};
traverse(store)
return checkedNodes;
}
export function setSelectedKeys(checkedKeys,halfCheckedKeys) {
let selected = [];
for(let i=0;i<checkedKeys.length;i++) {
let obj = {
key: checkedKeys[i].id,
type: 1,
};
selected.push(obj);
}
for(let j=0;j<halfCheckedKeys.length;j++) {
let obj = {
key: halfCheckedKeys[j],
type: 2,
};
selected.push(obj);
}
return selected;
}
\ No newline at end of file
......@@ -2024,19 +2024,25 @@ export default {
console.log(this.$refs.tree.getCheckedKeys());
},
onChecked() {
let cData = [],
oldData = (this.treeData.length && this.treeData.slice()) || [],
checkedKeys = this.$refs.tree.getCheckedKeys(),
halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
key => {
return { type: 1, key: key };
}
),
savedHalfCheckedKeys = halfCheckedKeys.map(key => {
return { type: 2, key: key };
}),
allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// let cData = [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
// checkedKeys = this.$refs.tree.getCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// key => {
// return { type: 1, key: key };
// }
// ),
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// return { type: 2, key: key };
// }),
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys()
let allSelectedKeys = operationData.setSelectedKeys(checkedTree,halfCheckedTree);
//重构内容
this.allSelectedKeys = allSelectedKeys;
this.initCheckList(allSelectedKeys);
......@@ -2046,20 +2052,27 @@ export default {
this.updatedTree = true;
},
getTreeCheck() {
let cData = [],
oldData = (this.treeData.length && this.treeData.slice()) || [],
checkedKeys = this.$refs.tree.getCheckedKeys(),
halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
key => {
return { type: 1, key: key };
}
),
savedHalfCheckedKeys = halfCheckedKeys.map(key => {
return { type: 2, key: key };
}),
allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// console.log('allSelectedKeys值:',allSelectedKeys)
// let cData = [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
// checkedKeys = this.$refs.tree.getCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// key => {
// return { type: 1, key: key };
// }
// ),
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// return { type: 2, key: key };
// }),
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// // console.log('allSelectedKeys值:',allSelectedKeys)
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys()
let allSelectedKeys = operationData.setSelectedKeys(checkedTree,halfCheckedTree);
vm.allSelectedKeys = allSelectedKeys;
//重构内容
return allSelectedKeys;
},
// 递归删除列表中所有子节点
......@@ -2427,6 +2440,7 @@ export default {
//设定的行政范围内容
getScope(type) {
let scope = "";
let noChangeTree = this.getTreeCheck();
if (type == "administrative") {
for (let i = 0; i < this.tagsRegion.length; i++) {
scope += this.tagsRegion[i].key;
......@@ -2445,7 +2459,7 @@ export default {
}
}
} else {
let noChangeTree = this.getTreeCheck();
// let noChangeTree = this.getTreeCheck();
console.log('noChangeTree值',noChangeTree);
if(noChangeTree.length > 0) {
for (let i = 0; i < noChangeTree.length; i++) {
......@@ -2456,7 +2470,7 @@ export default {
}
} else {
//选全国项目
if(this.tagsRegion[0].key == '000') {
if(this.tagsRegion.length > 0 && this.tagsRegion[0].key == '000') {
scope = '000:1';
console.log(this.tagsRegion,'scope',scope);
}
......
<template>
<div class="item-shield">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<el-radio-group v-model="shieldType" @change="changeType">
<el-radio-button label="1">屏蔽机构</el-radio-button>
<el-radio-button label="2">屏蔽人员</el-radio-button>
</el-radio-group>
<el-button class="complete" type="primary" size="small" @click="complete">完成</el-button>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;">
<el-form :model="formInline" ref="formInline" label-width="75px" class="form-inline">
<el-col :span="6">
<el-form-item label="所属机构:">
<el-input size="small" v-model="formInline.organizationName" placeholder="请输入机构名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="姓名:">
<el-input size="small" v-model="formInline.userName" placeholder="请输入人员名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="状态:">
<el-select size="small" v-model="formInline.status" placeholder="请选择状态">
<el-option
v-for="(item, index) in statusList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="padding:0;text-align:right;padding-right:10px;">
<el-button type="primary" size="small" @click="searchList()">搜索</el-button>
</el-col>
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="userName" label="人员名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="所属医院" align="center"></el-table-column>
<el-table-column prop="departmentName" label="所属科室" align="center" min-width="100"></el-table-column>
<el-table-column prop="province" label="所属省份" align="center"></el-table-column>
<el-table-column prop="city" label="所属城市" align="center"></el-table-column>
<el-table-column prop="county" label="所属区县" align="center"></el-table-column>
<el-table-column fixed="right" label="状态" width="200" align="center">
<template slot-scope="scope">{{ scope.row.status | shieldStatus }}</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="changeStatus(scope.row)"
>{{ scope.row.status | shieldButton }}</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="formInline.pageNo"
:page-sizes="[10, 20, 30, 100]"
:page-size="formInline.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
return {
curmbFirst: "教培项目",
curmbSecond: "屏蔽",
shieldType: 1,
formInline: {
organizationName: "",
userName: "",
status: "",
pageNo: 1,
pageSize: 10
},
statusList: [
{
label: "屏蔽",
value: 0
},
{
label: "取消屏蔽",
value: 1
}
],
tableData: [],
totalRows: 0,
};
},
computed: {
...mapGetters(["_token"])
},
created() {
vm = this;
this.search();
window.onbeforeunload = function(e) {
let pathname = location.href.split("/");
pathname = pathname[pathname.length - 1];
// console.log(pathname);
if (pathname == "item-shield") {
e = e || window.event;
if (e) {
e.returnValue = "关闭提示";
}
return "关闭提示";
}
};
},
// 挂载到Dom完成时
mounted: function() {
window.onbeforeunload = function(e) {
let pathname = location.href.split('/');
pathname = pathname[pathname.length-1];
console.log(pathname);
if(pathname == 'item-shield') {
e = e || window.event;
if (e) {
e.returnValue = "数据不会保存";
}
return "数据不会保存";
}
};
commonUtil.resizeHeight();
},
beforeRouteLeave(to, from, next) {
const answer = window.confirm(
"Do you really want to leave? you have unsaved changes!"
);
if (answer) {
next();
} else {
next(false);
}
},
destroyed() {
},
methods: {
searchList() {
this.formInline.pageNo = 1;
this.search();
},
search() {
vm.tableData = [
{
userName: "云小鹊",
hospitalName: "测试医院",
departmentName: "呼吸科",
province: "上海市",
city: "上海市",
county: "浦东新区",
status: 0
}
];
},
// 屏蔽/取消屏蔽
changeStatus() {
vm.tableData[0].status = 1;
},
//改变
changeType(value) {
console.log(value);
},
complete() {
console.log('完成');
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.formInline.pageSize = val;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.formInline.pageNo = val;
this.search();
},
}
};
</script>
<style lang="scss">
.item-shield {
.component-content {
padding: 10px;
background: #fff;
.complete {
float: right;
}
}
}
</style>
\ No newline at end of file
......@@ -54,6 +54,9 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名:">
<el-input v-model="formData.doctorName" placeholder="请输入人员名称"></el-input>
</el-form-item>
</el-form>
<div class="form-button">
<el-button @click="searchData()" type="primary">查询</el-button>
......@@ -137,6 +140,7 @@ export default {
formData: {
achievementStatus: "",
status: 1,
doctorName: '',
pageNo: 1,
pageSize: 20,
},
......@@ -261,6 +265,7 @@ export default {
status: vm.formData.status,
ids: operationData.getIds(vm.formInline,vm.organizationList,checkAll),
type: operationData.getSearchType(vm.formInline,checkAll),
doctorName: vm.formData.doctorName,
pageNo: vm.formData.pageNo,
pageSize: vm.formData.pageSize,
};
......@@ -317,6 +322,7 @@ export default {
{
achievementStatus: "",
status: 1,
doctorName: '',
pageNo: 1,
pageSize: 20,
}
......
......@@ -26,7 +26,7 @@
@change="changeOrganization"
multiple
collapse-tags
:disabled="formInline.region.length !== 3"
:disabled="formInline.region.length < 3"
style="width:330px"
>
<el-option
......@@ -182,6 +182,15 @@ export default {
console.log("newData", newData);
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
console.log("newData", newData);
resolve(newData);
});
}
}
},
......@@ -297,6 +306,10 @@ export default {
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
// obj.leaf = true;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
......
......@@ -154,7 +154,7 @@ export default {
});
},
getTableData(data) {
if (vm.formInline.region.length == 3 && vm.organizationNum == 1) {
if (vm.formInline.region.length >= 3 && vm.organizationNum == 1) {
vm.showTable = true;
vm.finishDetail = data.hospitalPeopleList;
} else {
......
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册