pull/3/head
siontion 9 months ago
commit 8960d93c21

@ -183,7 +183,7 @@
{{scope.row.saleOrderCode}} {{scope.row.saleOrderCode}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="子项目图号" min-width="150"> <el-table-column label="子项目图号" min-width="200" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.blueprintNo`" :rules="subFormRules.blueprintNo" class="mb-0px!"> <el-form-item :prop="`${$index}.blueprintNo`" :rules="subFormRules.blueprintNo" class="mb-0px!">
<el-input :disabled="detailDisabled" v-model="row.blueprintNo" placeholder="请输入子项目图号" /> <el-input :disabled="detailDisabled" v-model="row.blueprintNo" placeholder="请输入子项目图号" />
@ -198,35 +198,35 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单位" width="80"> <el-table-column label="单位" width="80" >
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!"> <el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px! ml-10px" >
{{getDictLabel(DICT_TYPE.HELI_MATERIAL_UNIT, row.unit)}} {{getDictLabel(DICT_TYPE.HELI_MATERIAL_UNIT, row.unit)}}
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重量(T)" min-width="150"> <el-table-column label="重量(T)" min-width="150" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.weight`" class="mb-0px!"> <el-form-item :prop="`${$index}.weight`" class="mb-0px!">
<el-input :disabled="detailDisabled" v-model="row.weight" placeholder="请输入重量(T)" /> <el-input :disabled="detailDisabled" v-model="row.weight" placeholder="请输入重量(T)" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="尺寸(米)" min-width="150"> <el-table-column label="尺寸(米)" min-width="150" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.size`" class="mb-0px!"> <el-form-item :prop="`${$index}.size`" class="mb-0px!">
<el-input :disabled="detailDisabled" v-model="row.size" placeholder="请输入尺寸(米)" /> <el-input :disabled="detailDisabled" v-model="row.size" placeholder="请输入尺寸(米)" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" min-width="180"> <el-table-column label="备注" min-width="180" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" class="mb-0px!"> <el-form-item :prop="`${$index}.remark`" class="mb-0px!">
<el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" /> <el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作" align="center" min-width="100">
<template #default="scope"> <template #default="scope">
<el-button v-if="'update,create,deliver'.indexOf(active) > -1" link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)"> <el-button v-if="'update,create,deliver'.indexOf(active) > -1" link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)">
删除 删除
@ -261,7 +261,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属类型" min-width="150"> <el-table-column label="所属类型" min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>所属类型 </template> <template #header> <span class="hl-table_header">*</span>所属类型 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.subType`" :rules="subFormRules.subType" class="mb-0px!"> <el-form-item :prop="`${$index}.subType`" :rules="subFormRules.subType" class="mb-0px!">
@ -271,7 +271,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="本次发货数量" min-width="150"> <el-table-column label="本次发货数量" min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>本次发货数量 </template> <template #header> <span class="hl-table_header">*</span>本次发货数量 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!"> <el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
@ -279,7 +279,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单位" min-width="150"> <el-table-column label="单位" min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>单位 </template> <template #header> <span class="hl-table_header">*</span>单位 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!"> <el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!">
@ -289,7 +289,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" min-width="150"> <el-table-column label="备注" min-width="150" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" class="mb-0px!"> <el-form-item :prop="`${$index}.remark`" class="mb-0px!">
<el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" /> <el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" />

@ -0,0 +1,135 @@
<template>
<Dialog :title="dialogTitle" width="80%" v-model="dialogVisible" center>
<ContentWrap class="borderxx">
<!-- 搜索工作栏 -->
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="108px">
<el-form-item label="项目编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item label="合同号" prop="contractNo">
<el-input v-model="queryParams.contractNo" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item label="客户名称" prop="customerName">
<el-input v-model="queryParams.customerName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item>
<el-button @click="handleQuery" type="primary">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<el-card class="hl-card">
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="tablelist" :stripe="true" class="hl-table" @selection-change="handleSelectionChange" selection>
<el-table-column fixed type="selection" width="40" />
<el-table-column fixed label="序号" type="index" width="60" />
<el-table-column fixed label="名称" align="center" prop="name" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column fixed="right" label="编号" align="center" prop="code" min-width="220" />
<el-table-column fixed="right" label="编号" align="center" prop="code" min-width="220" />
</el-table>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
</ContentWrap>
</el-card>
<template #footer>
<el-button @click="dialogVisible=false" size="large"> </el-button>
<el-button @click="submitForm" type="primary" size="large"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
import { ref } from 'vue'
const message = useMessage() //
const { t } = useI18n() //
const router = useRouter()
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const loading = ref(true) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
contractNo: undefined,
code: undefined,
orderStatus: 32
})
const queryFormRef = ref() //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
// const data = await ProjectOrderApi.getProjectOrderPage(queryParams)
// list.value = data.list
// total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
const tablelist = ref([
{
name: '合立000',
code: 'heli000'
},
{
name: '合立001',
code: 'heli000'
}
])
const multipleSelection = ref([])
const handleSelectionChange = (val: []) => {
multipleSelection.value = val
}
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = () => {
if (multipleSelection.value.length === 0) {
message.warning('请至少选择一条数据')
return
}
dialogVisible.value = false
//
emit('success', multipleSelection.value)
}
/** 打开弹窗 */
const open = async () => {
dialogTitle.value = t('common.selectText')
dialogVisible.value = true
handleQuery()
}
defineExpose({ open }) // open
</script>

@ -0,0 +1,136 @@
<template>
<Dialog :title="dialogTitle" width="80%" v-model="dialogVisible" center>
<ContentWrap class="borderxx">
<!-- 搜索工作栏 -->
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="108px">
<el-form-item label="项目编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item label="合同号" prop="contractNo">
<el-input v-model="queryParams.contractNo" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item label="客户名称" prop="customerName">
<el-input v-model="queryParams.customerName" placeholder="请输入客户名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
</el-form-item>
<el-form-item>
<el-button @click="handleQuery" type="primary">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<el-card class="hl-card">
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="tablelist" :stripe="true" highlight-current-row class="hl-table" @current-change="handleSelectionChange">
<el-table-column fixed label="序号" type="index" width="60" />
<el-table-column fixed label="名称" align="center" prop="name" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column label="编号" align="center" prop="code" min-width="220" />
<el-table-column fixed="right" label="编号" align="center" prop="code" min-width="220" />
<el-table-column fixed="right" label="编号" align="center" prop="code" min-width="220" />
</el-table>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
</ContentWrap>
</el-card>
<template #footer>
<el-button @click="dialogVisible=false" size="large"> </el-button>
<el-button @click="submitForm" type="primary" size="large"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
import { ref } from 'vue'
const message = useMessage() //
const { t } = useI18n() //
const router = useRouter()
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const loading = ref(true) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
contractNo: undefined,
code: undefined,
orderStatus: 32
})
const queryFormRef = ref() //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
// const data = await ProjectOrderApi.getProjectOrderPage(queryParams)
// list.value = data.list
// total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
const tablelist = ref([
{
name: '合立000',
code: 'heli000'
},
{
name: '合立111',
code: 'heli000'
}
])
const multipleSelection = ref([])
const handleSelectionChange = (val) => {
multipleSelection.value = val
}
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = () => {
if (multipleSelection.value.length === 0) {
message.warning('请选择一条数据')
return
}
dialogVisible.value = false
//
emit('success', multipleSelection.value)
}
/** 打开弹窗 */
const open = async () => {
dialogTitle.value = t('common.selectText')
dialogVisible.value = true
handleQuery()
}
defineExpose({ open }) // open
</script>

@ -17,35 +17,42 @@
<el-col :span="1"> 物料</el-col> <el-col :span="1"> 物料</el-col>
</el-row> </el-row>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="108px">
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="108px"
>
<el-form-item> <el-form-item>
<!-- <el-button @click="handleQuery" type="primary"
><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> -->
<el-button type="primary" plain @click="openForm('create')"> <el-button type="primary" plain @click="openForm('create')">
<Icon icon="ep:plus" class="mr-5px" /> 远程搜索示例 <Icon icon="ep:plus" class="mr-5px" /> 远程搜索示例
</el-button> </el-button>
<!-- <el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
</ContentWrap> </ContentWrap>
<el-card>
<el-row>
<el-col :span="3">
<el-button type="primary" @click="openDialogSelect('create')">
多选弹框
</el-button>
</el-col>
<el-col :span="9">
<el-input placeholder="多选内容" v-model="formData.checkSelectname" class="!w-350px" />
</el-col>
<el-col :span="3">
<el-button type="primary" @click="openDialogSelect1('create')">
单选弹框
</el-button>
</el-col>
<el-col :span="9"><el-input placeholder="单选内容" v-model="formData.onlySelect" class="!w-350px" /></el-col>
</el-row>
</el-card>
</el-card> </el-card>
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
<CustomerForm ref="formRef" @success="getList" /> <CustomerForm ref="formRef" @success="getList" />
<DialogSelect ref="dialogSelectref" @success="handleSelectedProjectOrder" />
<DialogSelectOnly ref="dialogSelectOnlyref" @success="handleSelectedProjectOrder1" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -55,6 +62,9 @@ import download from '@/utils/download'
import * as CustomerApi from '@/api/heli/customer' import * as CustomerApi from '@/api/heli/customer'
import CustomerForm from './indexFrom.vue' import CustomerForm from './indexFrom.vue'
import * as UserApi from '@/api/system/user' import * as UserApi from '@/api/system/user'
import DialogSelect from './dialogSelect.vue'
import DialogSelectOnly from './dialogSelectOnly.vue'
import Logger from '@/utils/Logger'
defineOptions({ name: 'Customer' }) defineOptions({ name: 'Customer' })
@ -75,67 +85,37 @@ const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // const exportLoading = ref(false) //
const userList = ref<UserApi.UserVO[]>([]) // const userList = ref<UserApi.UserVO[]>([]) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await CustomerApi.getCustomerPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref() const formRef = ref()
const openForm = (type: string, id?: number) => { const openForm = (type: string, id?: number) => {
formRef.value.open(type, id) formRef.value?.open(type, id)
} }
/** 删除按钮操作 */ //
const handleDelete = async (id: number) => { const dialogSelectref = ref()
try { const openDialogSelect = (type: string) => {
// dialogSelectref.value?.open(type)
await message.delConfirm() }
// //
await CustomerApi.deleteCustomer(id) const dialogSelectOnlyref = ref()
message.success(t('common.delSuccess')) const openDialogSelect1 = (type: string) => {
// dialogSelectOnlyref.value?.open(type)
await getList()
} catch {}
} }
/** 导出按钮操作 */ const formData: any = ref({
const handleExport = async () => { checkSelectname:undefined,
try { checkSelectcode: [],
// onlySelect: []
await message.exportConfirm() })
// //
exportLoading.value = true const handleSelectedProjectOrder = (val) => {
const data = await CustomerApi.exportCustomer(queryParams) formData.value.checkSelectname = val.map((item) => item.name)
download.excel(data, '客户新表.xls') formData.value.checkSelectcode = val.map((item) => item.code)
} catch { }
} finally { //
exportLoading.value = false const handleSelectedProjectOrder1 = (val) => {
} formData.value.onlySelect = val.name
} }
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {})
await getList()
userList.value = await UserApi.getSimpleUserList()
})
</script> </script>

@ -14,38 +14,21 @@
</div> </div>
<div v-else class="shipments"> <div v-else class="shipments">
<span <span v-if="betweenDay(new Date(), new Date(formData.projectEndTime)) == -1" class="shipmentsfont">{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
v-if="betweenDay(new Date(), new Date(formData.projectEndTime)) == -1"
class="shipmentsfont"
>距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
</span> </span>
<span <span v-else-if="betweenDay(new Date(), new Date(formData.projectEndTime)) < -1" class="shipmentsfont">距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
v-else-if="betweenDay(new Date(), new Date(formData.projectEndTime)) < -1"
class="shipmentsfont"
>距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
</span> </span>
<span v-else class="shipmentsfont" <span v-else class="shipmentsfont">距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
>距交货还有{{ betweenDay(new Date(), new Date(formData.projectEndTime)) + 1 }}
</span> </span>
</div> </div>
<img src="/src/assets/imgs/status/status32.png" alt="" /> <img src="/src/assets/imgs/status/status32.png" alt="" />
</div> </div>
<img v-else src="/src/assets/imgs/status/status32.png" alt="" /> <img v-else src="/src/assets/imgs/status/status32.png" alt="" />
</div> </div>
<img <img src="/src/assets/imgs/status/status64.png" v-else-if="formData.orderStatus == 64" alt="" />
src="/src/assets/imgs/status/status64.png"
v-else-if="formData.orderStatus == 64"
alt=""
/>
</div> </div>
<el-form <el-form ref="formRef" :model="formData" :rules="formRules" label-width="160px" v-loading="formLoading">
ref="formRef"
:model="formData"
:rules="formRules"
label-width="160px"
v-loading="formLoading"
>
<el-card class="hl-card-info"> <el-card class="hl-card-info">
<template #header> <template #header>
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">基础信息</span> <div class="hl-card-info-icona"></div><span class="hl-card-info-text">基础信息</span>
@ -57,63 +40,29 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目编号" prop="code"> <el-form-item label="项目编号" prop="code">
<el-input <el-input v-if="query.active != 'detailArchive'" disabled v-model="formData.code" class="!w-250px" placeholder="系统自动生成" />
v-if="query.active != 'detailArchive'" <el-input v-else disabled v-model="formData.snapshotCode" class="!w-250px" placeholder="系统自动生成" />
disabled
v-model="formData.code"
class="!w-250px"
placeholder="系统自动生成"
/>
<el-input
v-else
disabled
v-model="formData.snapshotCode"
class="!w-250px"
placeholder="系统自动生成"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="提出部门" prop="businessDeptId"> <el-form-item label="提出部门" prop="businessDeptId">
<el-tree-select <el-tree-select class="!w-250px" v-model="formData.businessDeptId" :data="deptList" :props="defaultProps" check-strictly node-key="id" clearable placeholder="请选择提出部门" :disabled="alterDisabled || detailDisabled" />
class="!w-250px"
v-model="formData.businessDeptId"
:data="deptList"
:props="defaultProps"
check-strictly
node-key="id"
clearable
placeholder="请选择提出部门"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input <el-input class="!w-250px" :disabled="alterDisabled || detailDisabled" v-model="formData.projectName" placeholder="请输入项目名称" />
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.projectName"
placeholder="请输入项目名称"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目开始日期" prop="projectStartTime"> <el-form-item label="项目开始日期" prop="projectStartTime">
<el-date-picker <el-date-picker class="!w-250px" v-model="formData.projectStartTime" type="date" value-format="x" placeholder="选择项目开始日期" :disabled="alterDisabled || detailDisabled" />
class="!w-250px"
v-model="formData.projectStartTime"
type="date"
value-format="x"
placeholder="选择项目开始日期"
:disabled="alterDisabled || detailDisabled"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -133,25 +82,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="业务员" prop="businessMan"> <el-form-item label="业务员" prop="businessMan">
<el-select <el-select class="!w-250px" v-model="formData.businessMan" placeholder="请输入负责人" :remote-method="remoteUserSearch" remote-show-suffix remote clearable reserve-keyword filterable :loading="userSelectLoading" :disabled="alterDisabled || detailDisabled">
class="!w-250px" <el-option v-for="item in userSelectList" :key="item.id" :label="item.username + ' ' + item.nickname" :value="item.id" />
v-model="formData.businessMan"
placeholder="请输入负责人"
:remote-method="remoteUserSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -159,18 +91,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属业务线" prop="businessLine"> <el-form-item label="所属业务线" prop="businessLine">
<el-select <el-select class="!w-250px" v-model="formData.businessLine" placeholder="请选择所属业务线" :disabled="alterDisabled || detailDisabled">
class="!w-250px" <el-option v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="dict.value" :label="dict.label" :value="dict.value" />
v-model="formData.businessLine"
placeholder="请选择所属业务线"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -178,27 +100,15 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="项目结束日期" prop="projectEndTime"> <el-form-item label="项目结束日期" prop="projectEndTime">
<el-date-picker <el-date-picker class="!w-250px" :class="{ 'alter-class': fieldHasAlter('projectEndTime') }" v-model="formData.projectEndTime" type="date" value-format="x" placeholder="选择项目结束日期" :disabled="detailDisabled" />
class="!w-250px" <span style="position: absolute; left: 0; top: 30px" v-if="formData.projectStartTime && formData.projectEndTime">{{
:class="{ 'alter-class': fieldHasAlter('projectEndTime') }"
v-model="formData.projectEndTime"
type="date"
value-format="x"
placeholder="选择项目结束日期"
:disabled="detailDisabled"
/>
<span
style="position: absolute; left: 0; top: 30px"
v-if="formData.projectStartTime && formData.projectEndTime"
>{{
' 共计' + ' 共计' +
betweenDay( betweenDay(
new Date(formData.projectStartTime), new Date(formData.projectStartTime),
new Date(formData.projectEndTime) new Date(formData.projectEndTime)
) + ) +
'天' '天'
}}</span }}</span>
>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -207,13 +117,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="可引用的原有技术" prop="referenceTechnology"> <el-form-item label="可引用的原有技术" prop="referenceTechnology">
<el-input <el-input class="!w-703px" :disabled="detailDisabled" v-model="formData.referenceTechnology" placeholder="请输入可引用的原有技术" :class="{ 'alter-class': fieldHasAlter('referenceTechnology') }" />
class="!w-703px"
:disabled="detailDisabled"
v-model="formData.referenceTechnology"
placeholder="请输入可引用的原有技术"
:class="{ 'alter-class': fieldHasAlter('referenceTechnology') }"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -230,25 +134,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="客户名称" prop="customerId"> <el-form-item label="客户名称" prop="customerId">
<el-select <el-select class="!w-250px" v-model="formData.customerId" placeholder="请输入客户名称" :remote-method="remoteCustomerSearch" remote-show-suffix remote clearable reserve-keyword filterable :loading="customerSelectLoading" :disabled="alterDisabled || detailDisabled">
class="!w-250px" <el-option v-for="item in customerSelectList" :key="item.id" :label="item.name" :value="item.id" />
v-model="formData.customerId"
placeholder="请输入客户名称"
:remote-method="remoteCustomerSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="customerSelectLoading"
:disabled="alterDisabled || detailDisabled"
>
<el-option
v-for="item in customerSelectList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -256,19 +143,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="性质" prop="property"> <el-form-item label="性质" prop="property">
<el-select <el-select class="!w-250px" :class="{ 'alter-class': fieldHasAlter('property') }" :disabled="detailDisabled" v-model="formData.property" placeholder="请选择性质">
class="!w-250px" <el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)" :key="dict.value" :label="dict.label" :value="dict.value" />
:class="{ 'alter-class': fieldHasAlter('property') }"
:disabled="detailDisabled"
v-model="formData.property"
placeholder="请选择性质"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -276,16 +152,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否有价格" prop="hasPrice"> <el-form-item label="是否有价格" prop="hasPrice">
<el-radio-group <el-radio-group v-model="formData.hasPrice" :disabled="detailDisabled" :class="{ 'alter-class': fieldHasAlter('hasPrice') }">
v-model="formData.hasPrice" <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.value">
:disabled="detailDisabled"
:class="{ 'alter-class': fieldHasAlter('hasPrice') }"
>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -295,16 +163,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否紧急" prop="isUrgency"> <el-form-item label="是否紧急" prop="isUrgency">
<el-radio-group <el-radio-group v-model="formData.isUrgency" :disabled="detailDisabled" :class="{ 'alter-class': fieldHasAlter('isUrgency') }">
v-model="formData.isUrgency" <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.value">
:disabled="detailDisabled"
:class="{ 'alter-class': fieldHasAlter('isUrgency') }"
>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -323,24 +183,14 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="合同号" prop="contractNo"> <el-form-item label="合同号" prop="contractNo">
<el-input <el-input class="!w-250px" :disabled="alterDisabled || detailDisabled" v-model="formData.contractNo" placeholder="请输入合同号" />
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.contractNo"
placeholder="请输入合同号"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="模具图号" prop="blueprintNo"> <el-form-item label="模具图号" prop="blueprintNo">
<el-input <el-input class="!w-250px" :disabled="alterDisabled || detailDisabled" v-model="formData.blueprintNo" placeholder="请输入模具图号" />
class="!w-250px"
:disabled="alterDisabled || detailDisabled"
v-model="formData.blueprintNo"
placeholder="请输入模具图号"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -348,29 +198,9 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="价格(元)" prop="price"> <el-form-item label="价格(元)" prop="price">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<el-input-number <el-input-number v-model="formData.price" :disabled="detailDisabled || formData.hasPrice == 0" placeholder="请输入价格" :controls="false" :min="0" :precision="6" style="width: 150px" :class="{ 'alter-class': fieldHasAlter('price') }" />
v-model="formData.price" <el-select :disabled="detailDisabled" v-model="formData.currency" placeholder="请选择币种" style="width: 100px" :class="{ 'alter-class': fieldHasAlter('currency') }">
:disabled="detailDisabled || formData.hasPrice == 0" <el-option v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CURRENCY)" :key="dict.value" :label="dict.label" :value="dict.value" />
placeholder="请输入价格"
:controls="false"
:min="0"
:precision="6"
style="width: 150px"
:class="{ 'alter-class': fieldHasAlter('price') }"
/>
<el-select
:disabled="detailDisabled"
v-model="formData.currency"
placeholder="请选择币种"
style="width: 100px"
:class="{ 'alter-class': fieldHasAlter('currency') }"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CURRENCY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</div> </div>
</el-form-item> </el-form-item>
@ -379,15 +209,9 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="是否已变更" prop="hasAlter"> <el-form-item label="是否已变更" prop="hasAlter">
<el-radio-group v-model="formData.hasAlter" disabled> <el-select class="!w-250px" v-model="formData.hasAlter" placeholder="请选择" disabled>
<el-radio <el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.label" :value="dict.value" />
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" </el-select>
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -396,51 +220,25 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="检验要求" prop="qualityRequirement"> <el-form-item label="检验要求" prop="qualityRequirement">
<el-input <el-input class="!w-703px" :disabled="detailDisabled" type="textarea" v-model="formData.qualityRequirement" placeholder="请输入检验要求" show-word-limit maxlength="200" :class="{ 'alter-class': fieldHasAlter('referenceTechnology') }" />
class="!w-703px"
:disabled="detailDisabled"
type="textarea"
v-model="formData.qualityRequirement"
placeholder="请输入检验要求"
show-word-limit
maxlength="200"
:class="{ 'alter-class': fieldHasAlter('referenceTechnology') }"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="remark" :disabled="detailDisabled"> <el-form-item label="备注" prop="remark" :disabled="detailDisabled">
<el-input <el-input class="!w-703px" :disabled="detailDisabled" type="textarea" v-model="formData.remark" show-word-limit maxlength="200" :class="{ 'alter-class': fieldHasAlter('remark') }" />
class="!w-703px"
:disabled="detailDisabled"
type="textarea"
v-model="formData.remark"
show-word-limit
maxlength="200"
:class="{ 'alter-class': fieldHasAlter('remark') }"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
<el-card class="hl-card-info"> <el-card class="hl-card-info">
<template #header> <template #header>
<div class="hl-card-info-icona"></div <div class="hl-card-info-icona"></div><span class="hl-card-info-text">客户提供信息资料内容</span>
><span class="hl-card-info-text">客户提供信息资料内容</span>
</template> </template>
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="有无合同" prop="hasContract"> <el-form-item label="有无合同" prop="hasContract">
<el-radio-group <el-radio-group :disabled="detailDisabled" v-model="formData.hasContract" :class="{ 'alter-class': fieldHasAlter('hasContract') }">
:disabled="detailDisabled" <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.value">
v-model="formData.hasContract"
:class="{ 'alter-class': fieldHasAlter('hasContract') }"
>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -448,16 +246,8 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="有无技术协议" prop="hasTechnologyProtocol"> <el-form-item label="有无技术协议" prop="hasTechnologyProtocol">
<el-radio-group <el-radio-group :disabled="detailDisabled" v-model="formData.hasTechnologyProtocol" :class="{ 'alter-class': fieldHasAlter('hasTechnologyProtocol') }">
:disabled="detailDisabled" <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.value">
v-model="formData.hasTechnologyProtocol"
:class="{ 'alter-class': fieldHasAlter('hasTechnologyProtocol') }"
>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -465,16 +255,8 @@
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="有无图纸/数模" prop="hasBlueprint"> <el-form-item label="有无图纸/数模" prop="hasBlueprint">
<el-radio-group <el-radio-group :disabled="detailDisabled" v-model="formData.hasBlueprint" :class="{ 'alter-class': fieldHasAlter('hasBlueprint') }">
:disabled="detailDisabled" <el-radio v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)" :key="dict.value" :label="dict.value">
v-model="formData.hasBlueprint"
:class="{ 'alter-class': fieldHasAlter('hasBlueprint') }"
>
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_COMMON_IS_OR_NOT)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
@ -482,14 +264,9 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="" label-width="0" prop="blueprintRemark"> <el-form-item label="" label-width="0" prop="blueprintRemark">
<el-input <el-input v-model="formData.blueprintRemark" placeholder="请输入图纸/数模说明" :disabled="
v-model="formData.blueprintRemark"
placeholder="请输入图纸/数模说明"
:disabled="
detailDisabled || (formData.hasBlueprint == 0 && (formData.blueprintRemark = '')) detailDisabled || (formData.hasBlueprint == 0 && (formData.blueprintRemark = ''))
" " :class="{ 'alter-class': fieldHasAlter('blueprintRemark') }" />
:class="{ 'alter-class': fieldHasAlter('blueprintRemark') }"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -502,90 +279,40 @@
<el-col> <el-col>
<el-card class="hl-incard"> <el-card class="hl-incard">
<el-col v-if="'update,create,alter'.indexOf(query.active) > -1"> <el-col v-if="'update,create,alter'.indexOf(query.active) > -1">
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem" <el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"></el-button>
>新增</el-button
>
</el-col> </el-col>
<el-form <el-form ref="projectOrderSubFormRef" :model="formData.projectOrderSubs" :rules="subFormRules" v-loading="subFormLoading" label-width="0">
ref="projectOrderSubFormRef"
:model="formData.projectOrderSubs"
:rules="subFormRules"
v-loading="subFormLoading"
label-width="0"
>
<el-table :data="formData.projectOrderSubs" class="hl-table"> <el-table :data="formData.projectOrderSubs" class="hl-table">
<el-table-column label="序号" type="index" width="80" /> <el-table-column label="序号" type="index" width="80" />
<el-table-column min-width="150" align="center"> <el-table-column min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>子项目名称 </template> <template #header> <span class="hl-table_header">*</span>子项目名称 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.name`" :rules="subFormRules.name" class="mb-0px!">
:prop="`${$index}.name`" <el-input :disabled="detailDisabled || row.id" v-model="row.name" placeholder="请输入子项目名称" />
:rules="subFormRules.name"
class="mb-0px!"
>
<el-input
:disabled="detailDisabled || row.id"
v-model="row.name"
placeholder="请输入子项目名称"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备型号" min-width="150" align="center"> <el-table-column label="设备型号" min-width="150" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.deviceModel`" :rules="subFormRules.deviceModel" class="mb-0px!">
:prop="`${$index}.deviceModel`" <el-input :disabled="detailDisabled || (alterDisabled && row.id)" v-model="row.deviceModel" placeholder="请输入设备型号" />
:rules="subFormRules.deviceModel"
class="mb-0px!"
>
<el-input
:disabled="detailDisabled || (alterDisabled && row.id)"
v-model="row.deviceModel"
placeholder="请输入设备型号"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column min-width="150" align="center"> <el-table-column min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>数量 </template> <template #header> <span class="hl-table_header">*</span>数量 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
:prop="`${$index}.amount`" <el-input-number style="width: 100%" :disabled="detailDisabled" v-model="row.amount" placeholder="请输入数量" :min="0" :precision="0" :class="{ 'alter-class': fieldHasAlterInRow('amount', row) }" />
:rules="subFormRules.amount"
class="mb-0px!"
>
<el-input-number
style="width: 100%"
:disabled="detailDisabled"
v-model="row.amount"
placeholder="请输入数量"
:min="0"
:precision="0"
:class="{ 'alter-class': fieldHasAlterInRow('amount', row) }"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column min-width="150" align="center"> <el-table-column min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>单位 </template> <template #header> <span class="hl-table_header">*</span>单位 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!">
:prop="`${$index}.unit`" <el-select :disabled="detailDisabled" v-model="row.unit" placeholder="请选择单位" :class="{ 'alter-class': fieldHasAlterInRow('unit', row) }">
:rules="subFormRules.unit" <el-option v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_UNIT)" :key="dict.value" :label="dict.label" :value="dict.value" />
class="mb-0px!"
>
<el-select
:disabled="detailDisabled"
v-model="row.unit"
placeholder="请选择单位"
:class="{ 'alter-class': fieldHasAlterInRow('unit', row) }"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
@ -593,59 +320,23 @@
<el-table-column min-width="150" align="center"> <el-table-column min-width="150" align="center">
<template #header> <span class="hl-table_header">*</span>材质 </template> <template #header> <span class="hl-table_header">*</span>材质 </template>
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.compositionId`" :rules="subFormRules.compositionId" class="mb-0px!">
:prop="`${$index}.compositionId`" <el-select v-model="row.compositionId" placeholder="请输入材质" :remote-method="remoteCompositionSearch" remote-show-suffix remote clearable reserve-keyword filterable :loading="compositionSelectLoading" :disabled="detailDisabled" :class="{ 'alter-class': fieldHasAlterInRow('compositionId', row) }">
:rules="subFormRules.compositionId" <el-option v-for="item in compositionSelectList" :key="item.id" :label="item.name" :value="item.id" />
class="mb-0px!"
>
<el-select
v-model="row.compositionId"
placeholder="请输入材质"
:remote-method="remoteCompositionSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="compositionSelectLoading"
:disabled="detailDisabled"
:class="{ 'alter-class': fieldHasAlterInRow('compositionId', row) }"
>
<el-option
v-for="item in compositionSelectList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" min-width="180" align="center"> <el-table-column label="备注" min-width="180" align="center">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<el-form-item <el-form-item :prop="`${$index}.remark`" :rules="subFormRules.remark" class="mb-0px!">
:prop="`${$index}.remark`" <el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" :class="{ 'alter-class': fieldHasAlterInRow('remark', row) }" />
:rules="subFormRules.remark"
class="mb-0px!"
>
<el-input
:disabled="detailDisabled"
v-model="row.remark"
placeholder="请输入备注"
:class="{ 'alter-class': fieldHasAlterInRow('remark', row) }"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="150"> <el-table-column label="操作" align="center" width="150">
<template #default="scope"> <template #default="scope">
<el-button <el-button v-if="'update,create'.indexOf(query.active) > -1 && !formData.hasAlter" link type="danger" size="small" @click.prevent="onDeleteItem(scope.$index)">
v-if="'update,create'.indexOf(query.active) > -1 && !formData.hasAlter"
link
type="danger"
size="small"
@click.prevent="onDeleteItem(scope.$index)"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -664,44 +355,21 @@
<el-col> <el-col>
<el-card class="hl-incard" :class="{ 'alter-class': fieldHasAlter('attachments') }"> <el-card class="hl-incard" :class="{ 'alter-class': fieldHasAlter('attachments') }">
<el-col v-if="'update,create,alter'.indexOf(query.active) > -1"> <el-col v-if="'update,create,alter'.indexOf(query.active) > -1">
<el-upload <el-upload v-if="formData.hasContract == 1" ref="contractUploadRef" :file-list="contractUploadFiles" multiple :limit="10" :action="uploadUrl" :headers="{
v-if="formData.hasContract == 1"
ref="contractUploadRef"
:file-list="contractUploadFiles"
multiple
:limit="10"
:action="uploadUrl"
:headers="{
Authorization: 'Bearer ' + getAccessToken(), Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId() 'tenant-id': getTenantId()
}" }" name="files" :show-file-list="false" :auto-upload="false" :data="contractUploadData" :on-change="contractUploadChange" class="upload-file-uploader">
name="files" <el-button type="primary">
:show-file-list="false" <Icon icon="ep:upload-filled" />上传合同
:auto-upload="false" </el-button>
:data="contractUploadData"
:on-change="contractUploadChange"
class="upload-file-uploader"
>
<el-button type="primary"><Icon icon="ep:upload-filled" />上传合同</el-button>
</el-upload> </el-upload>
<el-upload <el-upload v-if="formData.hasTechnologyProtocol == 1" ref="protocolUploadRef" multiple :limit="10" :action="uploadUrl" :headers="{
v-if="formData.hasTechnologyProtocol == 1"
ref="protocolUploadRef"
multiple
:limit="10"
:action="uploadUrl"
:headers="{
Authorization: 'Bearer ' + getAccessToken(), Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId() 'tenant-id': getTenantId()
}" }" name="files" :show-file-list="false" :auto-upload="false" :data="protocolUploadData" :on-change="protocolUploadChange" class="upload-file-uploader">
name="files" <el-button type="primary">
:show-file-list="false" <Icon icon="ep:upload-filled" />上传技术协议
:auto-upload="false" </el-button>
:data="protocolUploadData"
:on-change="protocolUploadChange"
class="upload-file-uploader"
>
<el-button type="primary"><Icon icon="ep:upload-filled" />上传技术协议</el-button>
</el-upload> </el-upload>
</el-col> </el-col>
<el-table :data="formData.attachments" class="hl-table"> <el-table :data="formData.attachments" class="hl-table">
@ -713,30 +381,13 @@
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="createTime" align="center" label="上传时间" :formatter="dateFormatter" />
prop="createTime"
align="center"
label="上传时间"
:formatter="dateFormatter"
/>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button <el-button v-if="'update,create,alter'.indexOf(query.active) > -1" link type="danger" size="small" @click="handleDeleteAttachment(scope.$index, scope.row.businessFileType)">
v-if="'update,create,alter'.indexOf(query.active) > -1"
link
type="danger"
size="small"
@click="handleDeleteAttachment(scope.$index, scope.row.businessFileType)"
>
删除 删除
</el-button> </el-button>
<el-button <el-button v-if="!!scope.row.id" link type="primary" size="small" @click="downloadAttachment(scope.row.name, scope.row.url)">
v-if="!!scope.row.id"
link
type="primary"
size="small"
@click="downloadAttachment(scope.row.name, scope.row.url)"
>
下载 下载
</el-button> </el-button>
</template> </template>
@ -760,13 +411,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userNickname" label="操作人" align="center" /> <el-table-column prop="userNickname" label="操作人" align="center" />
<el-table-column <el-table-column label="操作时间" align="center" prop="startTime" width="220" :formatter="dateFormatter" />
label="操作时间"
align="center"
prop="startTime"
width="220"
:formatter="dateFormatter"
/>
<el-table-column prop="content" label="操作意见" align="center" /> <el-table-column prop="content" label="操作意见" align="center" />
</el-table> </el-table>
</el-card> </el-card>
@ -776,77 +421,25 @@
</el-form> </el-form>
<div class="text-center hl-footer"> <div class="text-center hl-footer">
<el-button @click="() => router.back()" size="large"> </el-button> <el-button @click="() => router.back()" size="large"> </el-button>
<el-button <el-button v-if="'update,create'.indexOf(query.active) > -1 && formData.orderStatus <= 4" @click="submitForm('SAVE')" type="success" size="large"> </el-button>
v-if="'update,create'.indexOf(query.active) > -1 && formData.orderStatus <= 4" <el-button v-if="'update,create'.indexOf(query.active) > -1 && formData.orderStatus < 8" @click="submitForm('SUBMIT_AUDIT')" type="primary" size="large"> </el-button>
@click="submitForm('SAVE')" <el-button v-if="query.active == 'audit' && formData.orderStatus == 8" @click="submitForm('AUDIT')" type="primary" size="large"> </el-button>
type="success" <el-button v-if="query.active == 'approve' && formData.orderStatus == 16" @click="submitForm('APPROVE')" type="primary" size="large"> </el-button>
size="large" <el-button v-if="query.active == 'alter' && formData.orderStatus == 32" @click="submitForm('ALTER')" type="danger" size="large"></el-button>
> </el-button <el-button v-if="
>
<el-button
v-if="'update,create'.indexOf(query.active) > -1 && formData.orderStatus < 8"
@click="submitForm('SUBMIT_AUDIT')"
type="primary"
size="large"
> </el-button
>
<el-button
v-if="query.active == 'audit' && formData.orderStatus == 8"
@click="submitForm('AUDIT')"
type="primary"
size="large"
> </el-button
>
<el-button
v-if="query.active == 'approve' && formData.orderStatus == 16"
@click="submitForm('APPROVE')"
type="primary"
size="large"
> </el-button
>
<el-button
v-if="query.active == 'alter' && formData.orderStatus == 32"
@click="submitForm('ALTER')"
type="danger"
size="large"
>发起变更</el-button
>
<el-button
v-if="
'audit,approve'.indexOf(query.active) > -1 && 'audit,approve'.indexOf(query.active) > -1 &&
(formData.orderStatus == 8 || formData.orderStatus == 16) (formData.orderStatus == 8 || formData.orderStatus == 16)
" " @click="activeOpinionDialogVisible = true" type="danger" size="large"> </el-button>
@click="activeOpinionDialogVisible = true" <el-button v-if="query.active == 'terminate' && formData.orderStatus == 32" @click="submitForm('TERMINATE')" type="danger" size="large"></el-button>
type="danger"
size="large"
> </el-button
>
<el-button
v-if="query.active == 'terminate' && formData.orderStatus == 32"
@click="submitForm('TERMINATE')"
type="danger"
size="large"
>直接终止</el-button
>
</div> </div>
</el-card> </el-card>
<el-dialog v-model="activeOpinionDialogVisible" title="打回原因" width="30%" center> <el-dialog v-model="activeOpinionDialogVisible" title="打回原因" width="30%" center>
<el-input <el-input type="textarea" v-model="formData.activeOpinion" placeholder="请输入打回原因" show-word-limit maxlength="200" />
type="textarea"
v-model="formData.activeOpinion"
placeholder="请输入打回原因"
show-word-limit
maxlength="200"
/>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="activeOpinionDialogVisible = false">取消</el-button> <el-button @click="activeOpinionDialogVisible = false">取消</el-button>
<el-button <el-button type="primary" @click="submitForm('REPULSE') && (activeOpinionDialogVisible = false)">确认打回</el-button>
type="primary"
@click="submitForm('REPULSE') && (activeOpinionDialogVisible = false)"
>确认打回</el-button
>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@ -1090,7 +683,7 @@ const queryData = async (type: string, id?: number) => {
compositionSelectList.value = compositionData.list compositionSelectList.value = compositionData.list
// //
if(!formData.value.businessMan){ if (!formData.value.businessMan) {
formData.value.businessMan = useUserStore().getUser.id // formData.value.businessMan = useUserStore().getUser.id //
} }
const userProfile = await getUserProfile(formData.value.businessMan) const userProfile = await getUserProfile(formData.value.businessMan)

Loading…
Cancel
Save