|
@@ -4,7 +4,7 @@
|
|
<div id="hc_modal_tree">
|
|
<div id="hc_modal_tree">
|
|
<hc-card-item scrollbar>
|
|
<hc-card-item scrollbar>
|
|
<!-- <hc-lazy-tree :h-props="treeProps" @load="treeLoadNode" /> -->
|
|
<!-- <hc-lazy-tree :h-props="treeProps" @load="treeLoadNode" /> -->
|
|
- <HcDataTree :h-props="treeProps" :datas="treeLoadNode" />
|
|
|
|
|
|
+ <HcDataTree :h-props="treeProps" :datas="treeLoadNode" @nodeTap="treeClick" />
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
</div>
|
|
</div>
|
|
<div id="hc_modal_form">
|
|
<div id="hc_modal_form">
|
|
@@ -23,7 +23,7 @@
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="计量期:">
|
|
<el-form-item label="计量期:">
|
|
- <el-select v-model="baseForm.meterPeriodId" placeholder="选择计量期" filterable clearable block @change="searchKey1Click">
|
|
|
|
|
|
+ <el-select v-model="baseForm.meterPeriodId" placeholder="选择计量期" filterable clearable block>
|
|
<el-option v-for="item in key1Data" :key="item.id" :label="item.periodName" :value="item.id" />
|
|
<el-option v-for="item in key1Data" :key="item.id" :label="item.periodName" :value="item.id" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -56,8 +56,8 @@
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="材料是否符合要求:">
|
|
<el-form-item label="材料是否符合要求:">
|
|
<el-select v-model="baseForm.materialConform" block>
|
|
<el-select v-model="baseForm.materialConform" block>
|
|
- <el-option label="是" value="1" />
|
|
|
|
- <el-option label="否" value="2" />
|
|
|
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
|
+ <el-option label="否" :value="0" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -74,8 +74,8 @@
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="存储方法是否符合要求:">
|
|
<el-form-item label="存储方法是否符合要求:">
|
|
<el-select v-model="baseForm.storageConform" block>
|
|
<el-select v-model="baseForm.storageConform" block>
|
|
- <el-option label="是" value="1" />
|
|
|
|
- <el-option label="否" value="0" />
|
|
|
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
|
+ <el-option label="否" :value="0" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -96,14 +96,15 @@
|
|
<div class="flex-1 text-[16px] text-blue">附件列表</div>
|
|
<div class="flex-1 text-[16px] text-blue">附件列表</div>
|
|
<div class="font-400 text-orange">可上传 图片(png、jpg、jpeg)、Excel(xls、xlsx)、PDF、Word(doc、docx)文件</div>
|
|
<div class="font-400 text-orange">可上传 图片(png、jpg、jpeg)、Excel(xls、xlsx)、PDF、Word(doc、docx)文件</div>
|
|
</div>
|
|
</div>
|
|
- <el-form :model="baseForm" label-position="top">
|
|
|
|
|
|
+ <el-form :model="baseForm" label-position="top" style="overflow-y: auto;height: 100px;">
|
|
<el-form-item label="">
|
|
<el-form-item label="">
|
|
- <hc-form-upload type="list" :src="baseForm.key11" />
|
|
|
|
|
|
+ <hc-form-upload type="list" :src="fileName" @upload="formItemUpload" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <HcUploadFile ref="HcUploadFileRef" @finish="HcUploadFileFinish" />
|
|
</hc-new-dialog>
|
|
</hc-new-dialog>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -112,29 +113,47 @@ import { nextTick, ref, watch } from 'vue'
|
|
import { useAppStore } from '~src/store'
|
|
import { useAppStore } from '~src/store'
|
|
import contractApi from '~api/debit-pay/material/contract.js'
|
|
import contractApi from '~api/debit-pay/material/contract.js'
|
|
import periodApi from '~api/debit-pay/material/periods.js'
|
|
import periodApi from '~api/debit-pay/material/periods.js'
|
|
-import { getArrValue } from 'js-fast-way'
|
|
|
|
|
|
+import orderApi from '~api/debit-pay/material/order.js'
|
|
|
|
+import { arrToKey, getArrValue, getObjValue } from 'js-fast-way'
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
ids: {
|
|
ids: {
|
|
type: [String, Number],
|
|
type: [String, Number],
|
|
default: '',
|
|
default: '',
|
|
},
|
|
},
|
|
|
|
+ infoData:{
|
|
|
|
+ type: Object,
|
|
|
|
+ default: () => ({}),
|
|
|
|
+ },
|
|
})
|
|
})
|
|
//事件
|
|
//事件
|
|
const emit = defineEmits(['close'])
|
|
const emit = defineEmits(['close'])
|
|
const useAppState = useAppStore()
|
|
const useAppState = useAppStore()
|
|
const contractId = ref(useAppState.getContractId)
|
|
const contractId = ref(useAppState.getContractId)
|
|
-
|
|
|
|
|
|
+const projectId = ref(useAppState.getProjectId)
|
|
|
|
+const infoData = ref(props.infoData)
|
|
|
|
+const ids = ref(props.ids)
|
|
//双向绑定
|
|
//双向绑定
|
|
// eslint-disable-next-line no-undef
|
|
// eslint-disable-next-line no-undef
|
|
const isShow = defineModel('modelValue', {
|
|
const isShow = defineModel('modelValue', {
|
|
default: false,
|
|
default: false,
|
|
})
|
|
})
|
|
-
|
|
|
|
|
|
+const baseForm = ref({})
|
|
|
|
+const fileName = ref('')
|
|
//监听
|
|
//监听
|
|
watch(() => [
|
|
watch(() => [
|
|
props.ids,
|
|
props.ids,
|
|
-], ([ids]) => {
|
|
|
|
- console.log('ids', ids)
|
|
|
|
|
|
+ props.infoData,
|
|
|
|
+], ([Id, info]) => {
|
|
|
|
+ ids.value = Id
|
|
|
|
+ infoData.value = info
|
|
|
|
+
|
|
|
|
+ if (Id.length > 0) {
|
|
|
|
+ baseForm.value = info
|
|
|
|
+ console.log( fileName.value, ' fileName.value')
|
|
|
|
+ } else {
|
|
|
|
+ baseForm.value = {}
|
|
|
|
+ fileName.value = ''
|
|
|
|
+ }
|
|
}, { immediate: true })
|
|
}, { immediate: true })
|
|
|
|
|
|
//监听
|
|
//监听
|
|
@@ -188,14 +207,82 @@ const getTreeData = async ()=>{
|
|
treeLoadNode.value = []
|
|
treeLoadNode.value = []
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+const treeItem = ref({})
|
|
|
|
+const treeClick = ({ node, data, keys })=>{
|
|
|
|
+ treeItem.value = data
|
|
|
|
+ if (key1Data.value.length > 0) {
|
|
|
|
+ baseForm.value.meterPeriodId = key1Data.value[0].id
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
//基础表单
|
|
//基础表单
|
|
const baseFormRef = ref(null)
|
|
const baseFormRef = ref(null)
|
|
-const baseForm = ref({})
|
|
|
|
|
|
+// const baseForm = ref({})
|
|
const baseFormRules = {}
|
|
const baseFormRules = {}
|
|
-
|
|
|
|
-const modalSave = () => {
|
|
|
|
|
|
+const modalSaving = ref(false)
|
|
|
|
+const modalSave = async () => {
|
|
|
|
+ if (!treeItem.value?.id && ids.value.length < 1) {
|
|
|
|
+ window.$message.warning('请先选择左侧节点')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ modalSaving.value = true
|
|
|
|
+ if (ids.value.length < 1) {
|
|
|
|
+ const { error, code, msg } = await orderApi.add({
|
|
|
|
+ ...baseForm.value,
|
|
|
|
+ contractId:contractId.value,
|
|
|
|
+ contractMaterialId:treeItem.value?.id,
|
|
|
|
+ projectId:projectId.value,
|
|
|
|
+ })
|
|
|
|
+ //判断状态
|
|
|
|
+ modalSaving.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success(msg)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ } else if (ids.value.length > 0) {
|
|
|
|
+ const { error, code, msg } = await orderApi.update({
|
|
|
|
+ ...baseForm.value,
|
|
|
|
+ contractId:contractId.value,
|
|
|
|
+ contractMaterialId:treeItem.value?.id,
|
|
|
|
+ projectId:projectId.value,
|
|
|
|
+ })
|
|
|
|
+ //判断状态
|
|
|
|
+ modalSaving.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success(msg)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
modalClose()
|
|
modalClose()
|
|
}
|
|
}
|
|
|
|
+const HcUploadFileRef = ref(null)
|
|
|
|
+// const fileName = ref('')
|
|
|
|
+// 文件全部上传完成
|
|
|
|
+const HcUploadFileFinish = (res) => {
|
|
|
|
+ let arr = []
|
|
|
|
+ res.forEach((ele)=>{
|
|
|
|
+ arr.push(ele.resData)
|
|
|
|
+ })
|
|
|
|
+ arr.forEach((ele)=>{
|
|
|
|
+ ele.fileName = ele.originalName
|
|
|
|
+ ele.fileUrl = ele.link
|
|
|
|
+ ele.filePdfUrl = ele.pdfUrl
|
|
|
|
+ })
|
|
|
|
+ baseForm.value.fileList = arr
|
|
|
|
+fileName.value = arrToKey(arr, 'originalName', ',')
|
|
|
|
+
|
|
|
|
+ HcUploadFileRef?.value.setModalShow(false)
|
|
|
|
+}
|
|
|
|
+//上传
|
|
|
|
+const formItemUpload = () => {
|
|
|
|
+ HcUploadFileRef.value?.selectFile()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
const modalClose = () => {
|
|
const modalClose = () => {
|
|
isShow.value = false
|
|
isShow.value = false
|