@@ -70,6 +58,20 @@
import {ElMessageBox} from "element-plus";
import {getSubCompOpt} from "@/api/user/user";
+const checkList = ref(['1'])
+const checkStrictly = ref(false)
+const isExpand = ref('展开')
+const expandedKeys = ref(['-1']);
+const checkOptions = ref([
+ {
+ label: isExpand.value,
+ value: '1'
+ },
+ {
+ label: '父子联动',
+ value: '2'
+ },
+])
const props = defineProps({
value: {
type: Array,
@@ -86,7 +88,6 @@ const props = defineProps({
type: Boolean
}
});
-const checkBtn = ref(1)
const isChooseAll = ref(true);
let selectItem = reactive({
type: -1,
@@ -103,7 +104,8 @@ const tree = ref([]);
const defaultProps = {
value: "value",
label: "label",
- children: "children"
+ children: "children",
+ disabled: "disabled",
};
const emit = defineEmits();
const _value = computed({
@@ -118,22 +120,39 @@ const _value = computed({
watch(() => filterText.value, (newVal) => {
tree.value.filter(newVal);
});
-const matterTree = (list) => {
+const checkBoxChange = (val) => {
+ checkStrictly.value = val.includes('2')
+ let nodes = tree.value.store.nodesMap
+ if (val.includes('1')) {
+ for (const node in nodes) {
+ nodes[node].expanded = true;
+ }
+ isExpand.value = '折叠'
+ } else {
+ for (const node in nodes) {
+ nodes[node].expanded = false;
+ }
+ isExpand.value = '展开'
+ }
+}
+const matterTree = (list, flag) => {
list.forEach(item => {
- tree.value.setChecked(item, true)
+ if (!flag&&item.value!==-1) {
+ tree.value.setChecked(item, false)
+ }
if (item.children !== undefined) {
matterTree(item.children)
}
})
}
-const cancelAll = () => {
- isChooseAll.value = true
- tree.value.setCheckedNodes([])
-}
-const chooseAll = () => {
- isChooseAll.value = false
- matterTree(dataList.value)
-}
+// const cancelAll = () => {
+// isChooseAll.value = true
+// tree.value.setCheckedNodes([])
+// }
+// const chooseAll = () => {
+// isChooseAll.value = false
+// matterTree(dataList.value)
+// }
const getList = () => {
getSubCompOpt().then(res => {
dataList.value = [
@@ -161,10 +180,10 @@ const show = () => {
getList()
};
const handleChange = (data, checked) => {
- if(data.value==-1&&checked){
- chooseAll()
- }else if(data.value==-1&&!checked){
- cancelAll()
+ if (data.value == -1&&checked) {
+ // tree.value.setCheckedNodes(['-1'])
+ matterTree(dataList.value, false)
+ // return;
}
// 左侧有选择框 + 多选
if (props.multiple) {
@@ -193,7 +212,6 @@ const handleChange = (data, checked) => {
}
if (checked) {
tree.value.setCheckedNodes([data]);
- // this.$refs.tree.setCheckedKeys([]);
selectList.value = [data];
} else if (data === "1") {
selectList.value = [];
diff --git a/src/components/DetailComponent/ExpenseDetail.vue b/src/components/DetailComponent/ExpenseDetail.vue
index b036521..58cbae1 100644
--- a/src/components/DetailComponent/ExpenseDetail.vue
+++ b/src/components/DetailComponent/ExpenseDetail.vue
@@ -18,7 +18,8 @@
-
+
{{ getTotalSeparation(scope.row, column.prop) }}
@@ -92,7 +93,7 @@ const getTotalSeparation = (row, prop) => {
}
}
if (totalSeparation !== 0) {
- return totalSeparation;
+ return totalSeparation.toFixed(2);
} else {
return "/"
}
@@ -165,6 +166,6 @@ const exportTable = () => {
if (!$table) {
$table = $e
}
- exportExcel($table, tableData.value[0], "四川省国有资产经营投资管理有限责任公司科技创新项目人工成本分摊明细表")
+ exportExcel($table, (5 + (Object.keys(tableData.value[0]).length - 5) * 5), "四川省国有资产经营投资管理有限责任公司科技创新项目人工成本分摊明细表")
}
diff --git a/src/components/NameCircle.vue b/src/components/NameCircle.vue
index 4cf79d8..75a1481 100644
--- a/src/components/NameCircle.vue
+++ b/src/components/NameCircle.vue
@@ -1,5 +1,5 @@
-
+
-
-
{{user.operationTime}}
-
-
diff --git a/src/views/project-demand/requirement/add.vue b/src/views/project-demand/requirement/add.vue
index 08a8a52..2449aeb 100644
--- a/src/views/project-demand/requirement/add.vue
+++ b/src/views/project-demand/requirement/add.vue
@@ -34,12 +34,13 @@
- {{selectedCompanyList}}
- {{ getName(selectedCompanyList) }}
+ {{ selectedCompanyList }}
+ {{ getName(selectedCompanyList) }}
+ {{ showExpendText }}
+
{{ selectedCompanyList.length === 0 ? '请选择所属公司' : '更改' }}
-
-
@@ -123,8 +124,11 @@ import CompanyPicker from "@/components/DetailComponent/CompanyPicker.vue";
import {matterTree} from "@/utils/matterTree";
import {useCacheStore} from '@/stores/cache.js'
+
const cacheStore = useCacheStore()
const companyRef = ref()
+const showExpendText = ref('')
+const showMoreCompany = ref(false)
const selectedCompanyList = ref([])
// const companyList = ref([])
const changeDiagram = ref(false)
@@ -149,6 +153,7 @@ const processDiagramViewer = ref(false)
const companyOption = ref([])
const specialFundOption = ref([])
const form = ref(null)
+const expendClass = ref()
const fileList = ref([])
const loading = ref(false)
const showTable = ref(true)
@@ -207,7 +212,24 @@ const tableConfig = reactive({
}
]
})
-
+const handleExpend = () => {
+ showMoreCompany.value = !showMoreCompany.value;
+ showExpendClass(showMoreCompany.value)
+}
+const showExpendClass = (showMoreCompany) => {
+ if (!showMoreCompany) {
+ if (selectedCompanyList.value.length === 0) {
+ showExpendText.value = ''
+ return ''
+ } else if (selectedCompanyList.value.length>14) {
+ showExpendText.value = '展开'
+ return 'company-style'
+ }
+ } else {
+ showExpendText.value = '收缩'
+ return ''
+ }
+}
const getCompanyOptionItem = (val) => {
if (val !== undefined) {
val.forEach(item => {
@@ -222,6 +244,7 @@ const getName = (list) => {
const showCompany = () => {
companyRef.value.show()
}
+
const selected = (select) => {
for (let val of select) {
formData.value.companyIds.push(val.value)
@@ -437,6 +460,21 @@ onMounted(async () => {
width: 750px;
}
+ .company-style {
+ //width: 98%;
+ min-height: 30px;
+ max-height: 60px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 2;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ }
+
+ .company {
+ color: #fff;
+ height: auto;
+ }
}
:deep(.el-table--fit ) {
diff --git a/src/views/project-demand/requirement/detail.vue b/src/views/project-demand/requirement/detail.vue
index 22578af..7157acd 100644
--- a/src/views/project-demand/requirement/detail.vue
+++ b/src/views/project-demand/requirement/detail.vue
@@ -47,7 +47,7 @@ const getCompanyOptionItem = (val) => {
matterTree(companyNameArray.value, companyOption.value, item)
})
}
- return companyNameArray.value.join(',');
+ return companyNameArray.value
}
const init = async () => {
if (!route.query.id) return;
diff --git a/src/views/project-management/implementation/uploadFee.vue b/src/views/project-management/implementation/uploadFee.vue
index 80af415..f3662e5 100644
--- a/src/views/project-management/implementation/uploadFee.vue
+++ b/src/views/project-management/implementation/uploadFee.vue
@@ -3,7 +3,7 @@
baseForm = e">
-
+
-
+
@@ -31,7 +31,7 @@
-
+
@@ -45,7 +45,7 @@
-
+
@@ -53,7 +53,7 @@
-
+
diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue
index 6eadf53..ed70dab 100644
--- a/src/views/special-fund/add.vue
+++ b/src/views/special-fund/add.vue
@@ -46,7 +46,7 @@