提交
@@ -156,6 +165,7 @@ import {
} from "@/api/expense-manage";
import {useProcessStore} from '@/stores/processStore.js';
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
+import OperationRender from '@/views/workflow/common/OperationRender.vue'
const changeDiagram = ref(false)
const rules = reactive({
@@ -172,6 +182,7 @@ const rules = reactive({
researchDuration: [{required: true, message: '请输入研发时长', trigger: 'blur'}],
})
const processStore = useProcessStore()
+const opentionData = ref()
const processInstanceData = ref()
const processDiagramViewer = ref(false)
const loading = ref(false)
@@ -332,6 +343,7 @@ const getDetailInfo = async () => {
if (res.code === 1000) {
getDetailList()
formData.value = res.data.formData
+ opentionData.value = res.data
loading.value = false
}
})
diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue
index 6eadf53..e83e470 100644
--- a/src/views/special-fund/add.vue
+++ b/src/views/special-fund/add.vue
@@ -27,14 +27,23 @@
-
提交
@@ -53,6 +62,7 @@ import {useTagsView} from '@/stores/tagsview.js'
import {useProcessStore} from '@/stores/processStore.js';
import {downloadFile, deleteFile} from "@/api/project-demand";
+import OperationRender from '@/views/workflow/common/OperationRender.vue'
const changeDiagram = ref(false)
const tagsViewStore = useTagsView()
const router = useRouter()
From 57f27c2b84eb7775aa5f1e985a84af5c7295fbda Mon Sep 17 00:00:00 2001
From: odjbin <1042039504@qq.com>
Date: Thu, 20 Jun 2024 15:08:12 +0800
Subject: [PATCH 2/4] =?UTF-8?q?fix=20:=20=E4=BF=AE=E5=A4=8D=E4=B8=93?=
=?UTF-8?q?=E9=A1=B9=E8=B5=84=E9=87=91/=E8=B4=B9=E7=94=A8=E5=88=86?=
=?UTF-8?q?=E6=91=8A,=E7=BC=96=E8=BE=91,=E5=AE=A1=E6=89=B9=E8=AE=B0?=
=?UTF-8?q?=E5=BD=95=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/expense-management/share/add.vue | 11 ++++-----
src/views/special-fund/add.vue | 26 +++++++---------------
2 files changed, 14 insertions(+), 23 deletions(-)
diff --git a/src/views/expense-management/share/add.vue b/src/views/expense-management/share/add.vue
index c7b3465..ec3dfeb 100644
--- a/src/views/expense-management/share/add.vue
+++ b/src/views/expense-management/share/add.vue
@@ -126,7 +126,8 @@
-
+
+
流程图
{
})
}
-const getDetailInfo = async () => {
+const getDetailInfo = () => {
loading.value = true
getAllocationDetail(route.query.id).then(res => {
ElNotification({
@@ -399,10 +400,10 @@ const init = async () => {
const handleBack = () => {
history.back()
}
-onMounted(async () => {
- await init()
+onMounted( () => {
+ init()
if (route.query.id) {
- await getDetailInfo()
+ getDetailInfo()
}
})
diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue
index e83e470..ed70dab 100644
--- a/src/views/special-fund/add.vue
+++ b/src/views/special-fund/add.vue
@@ -27,23 +27,14 @@
-
-
提交
@@ -55,14 +46,13 @@
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}}
-
-
From cef8530a5b272f8678f0d4374913b4b311f2eb67 Mon Sep 17 00:00:00 2001
From: odjbin <1042039504@qq.com>
Date: Fri, 21 Jun 2024 12:23:25 +0800
Subject: [PATCH 4/4] =?UTF-8?q?fix=20:=20=E5=9B=BA=E5=AE=9A=E6=89=80?=
=?UTF-8?q?=E5=B1=9E=E5=85=AC=E5=8F=B8=E9=80=89=E6=8B=A9=E6=9D=A1=E6=95=B0?=
=?UTF-8?q?=E4=B8=BA14=E5=88=99=E9=9A=90=E8=97=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DetailComponent/CollectionDetail.vue | 55 ++++++++++--
.../DetailComponent/CompanyPicker.vue | 84 +++++++++++--------
src/views/project-demand/requirement/add.vue | 48 +++++++++--
.../project-demand/requirement/detail.vue | 2 +-
4 files changed, 141 insertions(+), 48 deletions(-)
diff --git a/src/components/DetailComponent/CollectionDetail.vue b/src/components/DetailComponent/CollectionDetail.vue
index 6d41fc5..fbc65a8 100644
--- a/src/components/DetailComponent/CollectionDetail.vue
+++ b/src/components/DetailComponent/CollectionDetail.vue
@@ -2,26 +2,31 @@
-
+
{{ formData.requirementName }}
-
+
{{ formData.collectType }}
-
-
- {{ formData.companyIds }}
-
-
-
+
{{ formData.deadline }}
+
+
+ {{
+ getCompanyName(formData.companyIds)
+ }}
+ {{ showExpendText }}
+
+
+
{{ formData.specialFund }}
@@ -84,6 +89,8 @@ import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.v
import {downloadFile} from "@/api/project-demand";
const emit = defineEmits(['update:value'])
+const showExpendText = ref('')
+const showMoreCompany = ref(false)
const props = defineProps({
formData: {
type: Array,
@@ -127,7 +134,26 @@ const _value = computed({
emit("update:value", val);
}
})
-
+const getCompanyName = (data) => {
+ if (data) {
+ return data.join(',')
+ }
+}
+const handleExpend = () => {
+ showMoreCompany.value = !showMoreCompany.value;
+ showExpendClass(showMoreCompany.value, props.formData.companyIds)
+}
+const showExpendClass = (showMoreCompany, data) => {
+ if (!showMoreCompany) {
+ if (data && data.length > 14) {
+ showExpendText.value = '展开'
+ return 'company-style'
+ }
+ } else {
+ showExpendText.value = '收缩'
+ return ''
+ }
+}
const handleDownload = (row) => {
downloadFile(row.fileId).then(res => {
@@ -152,4 +178,15 @@ watch(() => props.processViewer, (newVal) => {
:deep(.el-empty__description) {
margin-top: 0;
}
+
+.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;
+}
diff --git a/src/components/DetailComponent/CompanyPicker.vue b/src/components/DetailComponent/CompanyPicker.vue
index 1474132..141da7e 100644
--- a/src/components/DetailComponent/CompanyPicker.vue
+++ b/src/components/DetailComponent/CompanyPicker.vue
@@ -10,27 +10,15 @@
搜索
-
-
-
-
-
-
-
-
-
-
-
-
-
+
handle(node,check)"
+ :show-checkbox="showCheckbox" highlight-current default-expand-all
+ :default-checked-keys="defaultChecked" :disabled="disabled"
+ :check-strictly="!checkStrictly" @node-click="(node,check)=>handle(node,check)"
@check-change="handleChange" :filter-node-method="filterNode">
@@ -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/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;