|
@@ -19,8 +19,19 @@
|
|
@size-change="sizeChange"
|
|
@size-change="sizeChange"
|
|
@refresh-change="refreshChange"
|
|
@refresh-change="refreshChange"
|
|
@on-load="onLoad"
|
|
@on-load="onLoad"
|
|
|
|
+ :search.sync="search"
|
|
>
|
|
>
|
|
|
|
|
|
|
|
+<template slot-scope="{disabled,size}" slot="projectInfoListSearch">
|
|
|
|
+ <el-select v-model="search.projectId" placeholder="项目名称" filterable clearable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in projectList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.projectAlias"
|
|
|
|
+ :value="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </template>
|
|
<template slot="menuRight">
|
|
<template slot="menuRight">
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
@@ -118,15 +129,27 @@
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
</template>
|
|
</template>
|
|
</avue-crud>
|
|
</avue-crud>
|
|
|
|
+ <!-- wbs排序弹窗 -->
|
|
|
|
+ <ContractSort
|
|
|
|
+ ref="contractSortRef"
|
|
|
|
+ title="wbs排序弹窗"
|
|
|
|
+ :sortProLoad="sortProLoad"
|
|
|
|
+ @confirm="handleSortConfirm"
|
|
|
|
+ />
|
|
</basic-container>
|
|
</basic-container>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { getList, getDetail, add, update, remove } from "@/api/manager/wbsinfo";
|
|
|
|
|
|
+import { getList, getDetail, add, update, remove,sortWbs } from "@/api/manager/wbsinfo";
|
|
import { mapGetters } from "vuex";
|
|
import { mapGetters } from "vuex";
|
|
import { getDictionary } from "@/api/system/dict";
|
|
import { getDictionary } from "@/api/system/dict";
|
|
|
|
+ import ContractSort from './ContractSort.vue'
|
|
|
|
+import { getProjectListPage } from "@/api/manager/projectinfo";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
|
+ components: {
|
|
|
|
+ ContractSort
|
|
|
|
+ },
|
|
data () {
|
|
data () {
|
|
return {
|
|
return {
|
|
form: {},
|
|
form: {},
|
|
@@ -225,11 +248,8 @@ export default {
|
|
label: "引用项目",
|
|
label: "引用项目",
|
|
prop: "projectInfoList",
|
|
prop: "projectInfoList",
|
|
display: false,
|
|
display: false,
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- slot:true,
|
|
|
|
|
|
+ search: true,
|
|
|
|
+ slot:true,
|
|
},
|
|
},
|
|
|
|
|
|
]
|
|
]
|
|
@@ -242,12 +262,17 @@ export default {
|
|
},
|
|
},
|
|
wbsTypeList:[],
|
|
wbsTypeList:[],
|
|
proJectList:[],
|
|
proJectList:[],
|
|
|
|
+ sortProLoad:false,
|
|
|
|
+ wbsList:[],
|
|
|
|
+ sortWbsList:[],
|
|
|
|
+ projectList:[]
|
|
|
|
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created () {
|
|
created () {
|
|
|
|
|
|
-
|
|
|
|
|
|
+ this.getWbsList()
|
|
|
|
+ this.getProjectList()
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
...mapGetters(["permission"]),
|
|
...mapGetters(["permission"]),
|
|
@@ -268,6 +293,16 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ getProjectList () {
|
|
|
|
+ getProjectListPage({
|
|
|
|
+ current:1,
|
|
|
|
+ size:999,
|
|
|
|
+ ...this.searchForm
|
|
|
|
+
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ this.projectList = res.data.data.records;
|
|
|
|
+ })
|
|
|
|
+ },
|
|
generateTagItems(wbsTypes){
|
|
generateTagItems(wbsTypes){
|
|
const typeToLabelMap = {
|
|
const typeToLabelMap = {
|
|
1: '质检',
|
|
1: '质检',
|
|
@@ -431,10 +466,48 @@ export default {
|
|
handleParameter(){
|
|
handleParameter(){
|
|
this.$router.push('/wbs/parameter');
|
|
this.$router.push('/wbs/parameter');
|
|
},
|
|
},
|
|
|
|
+ getWbsList(){
|
|
|
|
+ getList(1, 1000).then(res => {
|
|
|
|
+ const data = res.data.data;
|
|
|
|
+
|
|
|
|
+ this.wbsList=data['records']
|
|
|
|
+ });
|
|
|
|
+ },
|
|
//排序
|
|
//排序
|
|
handleSort(){
|
|
handleSort(){
|
|
|
|
+ this.sortWbsList = JSON.parse(JSON.stringify(this.wbsList));
|
|
|
|
+ this.sortTitle = '合同段排序';
|
|
|
|
+
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.contractSortRef.show(this.sortWbsList);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ handleSortConfirm(sortedList) {
|
|
|
|
+ // 这里处理排序后的数据
|
|
|
|
+ console.log('排序后的列表:', sortedList);
|
|
|
|
+ // TODO: 调用接口保存排序结果
|
|
|
|
+ this.wbsList = [...sortedList];
|
|
|
|
+ const ids = this.wbsList.map(item => item.id);
|
|
|
|
+ this. saveSort(ids);
|
|
|
|
|
|
},
|
|
},
|
|
|
|
+ saveSort(ids){
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ sortWbs(ids).then((res) => {
|
|
|
|
+ this.sortProLoad= false;
|
|
|
|
+ if(res.data.code==200){
|
|
|
|
+ this.$message.success(res.data.msg)
|
|
|
|
+
|
|
|
|
+ this.onLoad(this.page);
|
|
|
|
+ }else{
|
|
|
|
+ this.$message.error(res.data.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|