|
@@ -22,31 +22,31 @@
|
|
|
</div>
|
|
|
<div class="ml-3 w-[400px]">
|
|
|
<hc-card-item title="详情信息" scrollbar>
|
|
|
- <el-form label-position="left" :model="formModel" label-width="auto" size="large" disabled>
|
|
|
+ <el-form label-position="left" :model="infoData" label-width="auto" size="large" disabled>
|
|
|
<el-form-item label="材料编号:">
|
|
|
- <el-input v-model="formModel.materialNumber" />
|
|
|
+ <el-input v-model="infoData.materialNumber" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="材料名称:">
|
|
|
- <el-input v-model="formModel.materialName" />
|
|
|
+ <el-input v-model="infoData.materialName" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="规格型号:">
|
|
|
- <el-input v-model="formModel.specification" />
|
|
|
+ <el-input v-model="infoData.specification" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="单位:">
|
|
|
- <el-input v-model="formModel.unit" />
|
|
|
+ <el-input v-model="infoData.unit" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="单价:">
|
|
|
- <el-input v-model="formModel.price" />
|
|
|
+ <el-input v-model="infoData.price" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="数量:">
|
|
|
- <el-input v-model="formModel.amount" />
|
|
|
+ <el-input v-model="infoData.amount" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</hc-card-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 新增/修改 -->
|
|
|
- <hc-new-dialog widths="30rem" :show="isFormModal" title="合同材料新增" :loading="saveLoaing" @save="modalSave" @close="modalClose">
|
|
|
+ <hc-new-dialog widths="30rem" :show="isFormModal" :title="modalTitle" :loading="saveLoaing" @save="modalSave" @close="modalClose">
|
|
|
<el-form ref="formRef" class="p-2" label-position="top" :model="formModel" :rules="formRules" size="large">
|
|
|
<el-form-item label="材料编号:">
|
|
|
<el-input v-model="formModel.materialNumber" />
|
|
@@ -75,7 +75,7 @@
|
|
|
import { onMounted, ref } from 'vue'
|
|
|
import mainApi from '~api/debit-pay/material/contract.js'
|
|
|
import { useAppStore } from '~src/store'
|
|
|
-import { getArrValue } from 'js-fast-way'
|
|
|
+import { deepClone, formValidate, getArrValue } from 'js-fast-way'
|
|
|
import { delMessageV2 } from '~com/message/index.js'
|
|
|
const useAppState = useAppStore()
|
|
|
const projectId = ref(useAppState.getProjectId)
|
|
@@ -113,6 +113,7 @@ const tableColumn = ref([
|
|
|
{ key: 'action', name: '操作', width: 100 },
|
|
|
])
|
|
|
const tableData = ref([])
|
|
|
+const infoData = ref({})
|
|
|
const getTableData = async () => {
|
|
|
tableLoading.value = true
|
|
|
const { error, code, data } = await mainApi.getPage({
|
|
@@ -124,7 +125,7 @@ const getTableData = async () => {
|
|
|
if (!error && code === 200) {
|
|
|
tableData.value = getArrValue(data['records'])
|
|
|
if (tableData.value.length > 0) {
|
|
|
- formModel.value = tableData.value[0]
|
|
|
+ infoData.value = tableData.value[0]
|
|
|
// getDetail(tableData.value[0].id)
|
|
|
}
|
|
|
|
|
@@ -135,30 +136,41 @@ const getTableData = async () => {
|
|
|
}
|
|
|
}
|
|
|
const viewRow = ({ row })=>{
|
|
|
- formModel.value = row
|
|
|
+ infoData.value = row
|
|
|
}
|
|
|
+const modalTitle = ref('')
|
|
|
//新增
|
|
|
const isFormModal = ref(false)
|
|
|
const rowAddClick = () => {
|
|
|
isFormModal.value = true
|
|
|
formModel.value = {}
|
|
|
+ modalTitle.value = '合同材料新增'
|
|
|
}
|
|
|
|
|
|
//表单数据
|
|
|
const formRef = ref(null)
|
|
|
const formModel = ref({})
|
|
|
-const formRules = {}
|
|
|
+const formRules = {
|
|
|
+ materialName: {
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ message: '请输入材料名称',
|
|
|
+ },
|
|
|
+}
|
|
|
|
|
|
//修改
|
|
|
const rowEditClick = (row) => {
|
|
|
+ modalTitle.value = '合同材料修改'
|
|
|
isFormModal.value = true
|
|
|
- formModel.value = row
|
|
|
+ formModel.value = deepClone(row)
|
|
|
}
|
|
|
|
|
|
//保存
|
|
|
const saveLoaing = ref(false)
|
|
|
const modalSave = async () => {
|
|
|
- saveLoaing.value = true
|
|
|
+ const res = await formValidate(formRef.value)
|
|
|
+ if (res) {
|
|
|
+ saveLoaing.value = true
|
|
|
const { error, code, msg } = await mainApi.submit({
|
|
|
...formModel.value,
|
|
|
projectId:projectId.value,
|
|
@@ -170,8 +182,10 @@ const modalSave = async () => {
|
|
|
if (!error && code === 200) {
|
|
|
window?.$message?.success(msg)
|
|
|
}
|
|
|
- getTableData()
|
|
|
- modalClose()
|
|
|
+ getTableData()
|
|
|
+ modalClose()
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
const delRowClick = async (row)=>{
|
|
|
delMessageV2(async (action, instance, done) => {
|