提交 be85e2b7 编写于 作者: zhentian.jia's avatar zhentian.jia

项目编辑页重构

上级 33f767d8
...@@ -272,6 +272,7 @@ ...@@ -272,6 +272,7 @@
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
<span> <span>
<el-button <el-button
v-if="node.level < 5"
type="text" type="text"
icon="el-icon-caret-bottom" icon="el-icon-caret-bottom"
size="small" size="small"
...@@ -298,25 +299,23 @@ ...@@ -298,25 +299,23 @@
<el-tab-pane label="设定机构" name="second"> <el-tab-pane label="设定机构" name="second">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline"> <el-form :inline="true" :model="formOrganization" class="demo-form-inline">
<el-form-item label> <el-form-item label>
<!-- <el-select <!-- <el-cascader
size="small"
v-model="formOrganization.administrativeId"
placeholder="全部地区"
v-if="idType != 2"
>
<el-option
v-for="item in organizationRegion"
:key="item.id"
:label="item.label"
:value="item.value"
></el-option>
</el-select> -->
<el-cascader
v-if="idType != 2" v-if="idType != 2"
size="small" size="small"
expand-trigger="hover" expand-trigger="hover"
:options="organizationRegion" :options="organizationRegion"
v-model="formOrganization.administrativeIdList" v-model="formOrganization.administrativeIdList"
></el-cascader> -->
<el-cascader
size="small"
ref="cascaderRegion"
:options="optionsRegion"
:props="props"
v-model="formOrganization.administrativeIdList"
@change="handleChangeRegion"
filterable
change-on-select
placeholder="请选择地区"
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -336,7 +335,7 @@ ...@@ -336,7 +335,7 @@
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button> <el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item> </el-form-item>
<el-form-item style="float:right;"> <el-form-item style="float:right;">
<el-button-group> <!-- <el-button-group>
<el-button <el-button
size="small" size="small"
type="default" type="default"
...@@ -347,7 +346,23 @@ ...@@ -347,7 +346,23 @@
type="default" type="default"
@click="checkAll(false,'multipleOrganization')" @click="checkAll(false,'multipleOrganization')"
>全部不选</el-button> >全部不选</el-button>
</el-button-group> </el-button-group> -->
<el-upload
v-if="idType == 1 && status4Flag != 1"
class="upload-excel"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadOrganization"
>
<el-button size="small">导入机构名单</el-button>
<el-button class="down-button" slot="tip" size="small" @click="download('organization')">下载导入模板</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('organization')">下载导入模板</el-button>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
...@@ -357,6 +372,8 @@ ...@@ -357,6 +372,8 @@
tooltip-effect="dark" tooltip-effect="dark"
style="width: 100%" style="width: 100%"
@selection-change="selectionChangeOrganization" @selection-change="selectionChangeOrganization"
@select-all="selectAllOrganization"
@select="selectOrganization"
:row-key="getRowKeys" :row-key="getRowKeys"
> >
<el-table-column <el-table-column
...@@ -587,11 +604,27 @@ ...@@ -587,11 +604,27 @@
<el-button type="primary" size="small" @click="coverData()">确定</el-button> <el-button type="primary" size="small" @click="coverData()">确定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="提醒" :visible.sync="dialogWarn" width="30%" center> <el-dialog title="提醒" :visible.sync="dialogWarn" width="30%" center :show-close="false" :close-on-click-modal="false">
<p v-if="warnType == 0">该项目</p> <p v-if="warnType == 0">该项目为上架状态,确定要增加“行政范围”吗?</p>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogWarn = false">取消</el-button> <el-button @click="closeCheck()">取消</el-button>
<el-button type="primary" @click="openDialog()">确定增加</el-button> <el-button type="primary" @click="dialogWarn = false">确定增加</el-button>
</span>
</el-dialog>
<el-dialog title="提醒" :visible.sync="dialogUpload" width="30%" center >
<p style="text-align:center">该项目为上架状态,确定要导入机构名单吗?</p>
<span slot="footer" class="dialog-footer">
<el-upload
class="upload-excel"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadOrganization"
>
<el-button class="down-button-close" slot="tip" size="small" @click="dialogUpload = false">取消</el-button>
<el-button type="primary" size="small">继续导入</el-button>
</el-upload>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
...@@ -749,6 +782,7 @@ import { mapGetters } from "vuex"; ...@@ -749,6 +782,7 @@ import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils"; import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation"; import * as operationData from "../../utils/operation";
import { getExeclUrl } from "@/utils/index";
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
let vm = null; let vm = null;
...@@ -778,7 +812,7 @@ export default { ...@@ -778,7 +812,7 @@ export default {
curmbSecond: "新建项目", curmbSecond: "新建项目",
//页面展示位置 //页面展示位置
stepData: [true, false, false], stepData: [true, false, false],
active: 0, active: 1,
activeName: "first", activeName: "first",
//基层信息 数据 //基层信息 数据
uploadImgMessage: false, uploadImgMessage: false,
...@@ -960,6 +994,42 @@ export default { ...@@ -960,6 +994,42 @@ export default {
//v2.2.0更新 //v2.2.0更新
dialogWarn: false, dialogWarn: false,
warnType: 0, warnType: 0,
nowCheck: {},
administrativeValue: '',
optionsRegion: [],
dialogUpload: false,
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
console.log("node", node);
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
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");
resolve(newData);
});
}
}
},
//校验工具 数据 //校验工具 数据
rulesComponent: { rulesComponent: {
component: [ component: [
...@@ -1892,6 +1962,7 @@ export default { ...@@ -1892,6 +1962,7 @@ export default {
this.activeName = "second"; this.activeName = "second";
this.getOrganization(); this.getOrganization();
this.getCheckedTree(); this.getCheckedTree();
this.getRegionOption();
} }
} }
}, },
...@@ -1907,6 +1978,7 @@ export default { ...@@ -1907,6 +1978,7 @@ export default {
this.getCheckedTree(); this.getCheckedTree();
this.getOrganization(); this.getOrganization();
// this.listLevels(); // this.listLevels();
this.getRegionOption();
} else if (tabName == "third") { } else if (tabName == "third") {
//设定科室 //设定科室
// if (this.checkTableState.multipleDepartment && this.firstDepartment) { // if (this.checkTableState.multipleDepartment && this.firstDepartment) {
...@@ -2038,20 +2110,6 @@ export default { ...@@ -2038,20 +2110,6 @@ export default {
console.log(this.$refs.tree.getCheckedKeys()); console.log(this.$refs.tree.getCheckedKeys());
}, },
onChecked() { 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 checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store); let checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys() let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys()
...@@ -2066,21 +2124,6 @@ export default { ...@@ -2066,21 +2124,6 @@ export default {
this.updatedTree = true; this.updatedTree = true;
}, },
getTreeCheck() { 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 checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store); let checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys() let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys()
...@@ -2089,41 +2132,6 @@ export default { ...@@ -2089,41 +2132,6 @@ export default {
//重构内容 //重构内容
return allSelectedKeys; return allSelectedKeys;
}, },
// 递归删除列表中所有子节点
delSubKeysByNode(node, checkedKeys) {
let idIndex;
if (node.children && node.children.length) {
if (node.children && node.children.length) {
node.children.forEach(elm => {
idIndex = checkedKeys.findIndex(id => {
return id === elm.id;
});
if (idIndex > -1) {
checkedKeys.splice(idIndex, 1);
}
if (elm.children && elm.children.length) {
this.delSubKeysByNode(elm, checkedKeys);
}
});
}
}
},
// 去除子节点
handlerCheckedData(oldData, checkedKeys) {
oldData.forEach(element => {
for (let i = 0; i < checkedKeys.length; i++) {
// 如果此节点被选中,则删除所有子节点
if (element.id === checkedKeys[i]) {
this.delSubKeysByNode(element, checkedKeys);
} else {
if (element.children && element.children.length) {
this.handlerCheckedData(element.children, checkedKeys);
}
}
}
});
return checkedKeys;
},
//通过key设置tree //通过key设置tree
setCheckedKeys(tagsRegion) { setCheckedKeys(tagsRegion) {
console.log(tagsRegion); console.log(tagsRegion);
...@@ -2142,15 +2150,6 @@ export default { ...@@ -2142,15 +2150,6 @@ export default {
this.setCheckedKeys(this.tagsRegion); this.setCheckedKeys(this.tagsRegion);
} }
}, },
//获取反选数据
getDifference(a, b) {
if (a.constructor === Array && b.constructor === Array) {
let set1 = new Set(a);
let set2 = new Set(b);
return Array.from(new Set([...set1].filter(x => !set2.has(x))));
}
return null;
},
//获取医院等级 //获取医院等级
listLevels() { listLevels() {
let req = {}; let req = {};
...@@ -2172,6 +2171,9 @@ export default { ...@@ -2172,6 +2171,9 @@ export default {
//console.log("scopeReq",this.scopeReq); //console.log("scopeReq",this.scopeReq);
return false; return false;
} }
if(row.id == 1200) {
return false;
}
return true; return true;
} }
return true; return true;
...@@ -3438,12 +3440,84 @@ export default { ...@@ -3438,12 +3440,84 @@ export default {
}, },
//v2.2教培更新 //v2.2教培更新
checkUpdate(data,flag) { checkUpdate(data,flag) {
if(vm.status4Flag == 1) { if(vm.status4Flag == 1 && flag == true) {
console.log(data,flag,vm.status4Flag); console.log(data,flag,vm.status4Flag);
// vm. vm.nowCheck = data;
this.$refs.tree.setChecked(data,false) vm.warnType = 0;
vm.dialogWarn = true;
// this.$refs.tree.setChecked(data,false)
} }
}, },
closeCheck() {
vm.dialogWarn = false;
this.$refs.tree.setChecked(vm.nowCheck,false);
for(let i=0;i<vm.tagsRegion.length;i++) {
if(vm.tagsRegion[i].key == vm.nowCheck.id) {
vm.tagsRegion.splice(i,1);
}
}
},
uploadOrganization(file) {
},
download(type) {
let downloadUrl = "";
if (type == "organization") {
downloadUrl = getExeclUrl(
"%E6%95%99%E5%9F%B9%E9%A1%B9%E7%9B%AE%E8%A7%92%E8%89%B2%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx"
);
}
setTimeout(() => {
window.open(downloadUrl);
}, 500);
},
handleChangeRegion(value) {
let areaId = '000';
for(let i=0;i<value.length;i++) {
areaId += '_'+value[i];
}
vm.administrativeValue = areaId;
console.log(value,vm.administrativeValue);
},
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} 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);
}
return option;
},
//获取地区
getRegionOption() {
let req = {};
openLoading(vm);
vm.GET("basic-data/position/provinces", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
}
});
},
selectAllOrganization(selection) {
console.log('selectAll',selection)
},
selectOrganization(selection, row) {
console.log('select',selection,row)
},
} }
}; };
</script> </script>
...@@ -3664,6 +3738,13 @@ export default { ...@@ -3664,6 +3738,13 @@ export default {
color: #d4edfe; color: #d4edfe;
} }
} }
.down-button {
margin-left: 10px;
}
.down-button-close {
margin-left: 100px;
float: left;
}
} }
.third-step { .third-step {
margin: 30px 0 0px 30px; margin: 30px 0 0px 30px;
......
...@@ -11,14 +11,6 @@ ...@@ -11,14 +11,6 @@
<el-form :model="formInline" ref="formInline" label-width="75px" class="form-inline"> <el-form :model="formInline" ref="formInline" label-width="75px" class="form-inline">
<el-col :span="6" v-if=" shieldType == 0"> <el-col :span="6" v-if=" shieldType == 0">
<el-form-item label="地区:"> <el-form-item label="地区:">
<!-- <el-select size="small" v-model="formInline.administrativeId" placeholder="请选择地区">
<el-option
v-for="(item, index) in areaList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> -->
<el-cascader <el-cascader
size="small" size="small"
ref="cascaderRegion" ref="cascaderRegion"
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册