|
|
@ -29,7 +29,7 @@ |
|
|
|
@cancel="closeService" |
|
|
|
width="80%" |
|
|
|
> |
|
|
|
<a-form :model="serviceForm" layout="vertical" :rules="serviceRules" ref="serviceRef" > |
|
|
|
<a-form :model="serviceForm" layout="vertical" :rules="serviceRules" ref="serviceRef"> |
|
|
|
<a-row :gutter="[16, 16]"> |
|
|
|
<a-col :span="24"> |
|
|
|
<a-form-item label="合同名称" name="contractId"> |
|
|
@ -66,33 +66,41 @@ |
|
|
|
<a-row> |
|
|
|
<a-col :span="24"> |
|
|
|
<a-form-item label="自动生成" name="auto"> |
|
|
|
<a-switch v-model:checked="serviceForm.auto" disabled/> |
|
|
|
<a-switch v-model:checked="serviceForm.auto" disabled /> |
|
|
|
</a-form-item> |
|
|
|
</a-col> |
|
|
|
</a-row> |
|
|
|
<a-row> |
|
|
|
<a-col :span="24"> |
|
|
|
<a-table :columns="serviceColumns" |
|
|
|
:data-source="serviceProjectOptions" |
|
|
|
:row-selection="serviceRowSelection" |
|
|
|
rowKey="id" |
|
|
|
/> |
|
|
|
<a-table |
|
|
|
:columns="serviceColumns" |
|
|
|
:data-source="serviceProjectOptions" |
|
|
|
:row-selection="serviceRowSelection" |
|
|
|
rowKey="id" |
|
|
|
/> |
|
|
|
</a-col> |
|
|
|
</a-row> |
|
|
|
</a-form> |
|
|
|
</a-modal> |
|
|
|
<detailDrawer ref="detailDrawerRef" /> |
|
|
|
<addModal ref="addModalRef" @success="reload()"/> |
|
|
|
<addModal ref="addModalRef" @success="reload()" /> |
|
|
|
</PageWrapper> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
import { PageWrapper } from '@/components/Page'; |
|
|
|
import { BasicTable, useTable } from '@/components/Table'; |
|
|
|
import { list, removeByIds, createPlansByHands, getCategory,findLeafNodeInfos,createPautoCreatePlanslans } from './api'; |
|
|
|
import { |
|
|
|
list, |
|
|
|
removeByIds, |
|
|
|
createPlansByHands, |
|
|
|
getCategory, |
|
|
|
findLeafNodeInfos, |
|
|
|
createPautoCreatePlanslans, |
|
|
|
} from './api'; |
|
|
|
import { formSchemas, columns } from './data'; |
|
|
|
import detailDrawer from './detailDrawer.vue'; |
|
|
|
import { ref, reactive } from 'vue'; |
|
|
|
import { ref, reactive, onActivated } from 'vue'; |
|
|
|
import addModal from './addModal.vue'; |
|
|
|
import { message } from 'ant-design-vue'; |
|
|
|
import { commonDownload } from '@/api/common/index'; |
|
|
@ -149,35 +157,34 @@ |
|
|
|
let serviceForm = reactive({ |
|
|
|
contractId: null, |
|
|
|
categoryId: null, |
|
|
|
serviceProjectList:[], |
|
|
|
auto:false |
|
|
|
serviceProjectList: [], |
|
|
|
auto: false, |
|
|
|
}); |
|
|
|
const serviceVisible = ref(false); |
|
|
|
const serviceRef = ref(); |
|
|
|
const serviceSubmit = () => { |
|
|
|
serviceRef.value.validate().then((valid: any) => { |
|
|
|
if (valid) { |
|
|
|
if(serviceForm.serviceProjectList&&serviceForm.serviceProjectList.length>0){ |
|
|
|
if (serviceForm.serviceProjectList && serviceForm.serviceProjectList.length > 0) { |
|
|
|
let params = { |
|
|
|
contractId: serviceForm.contractId, |
|
|
|
categoryId: serviceForm.categoryId, |
|
|
|
serviceProjectList:serviceForm.serviceProjectList |
|
|
|
}; |
|
|
|
if(serviceForm.auto){ |
|
|
|
createPautoCreatePlanslans(params).then((_) => { |
|
|
|
message.success('操作成功'); |
|
|
|
closeService(); |
|
|
|
}); |
|
|
|
}else{ |
|
|
|
createPlansByHands(params).then((_) => { |
|
|
|
message.success('操作成功'); |
|
|
|
closeService(); |
|
|
|
}); |
|
|
|
contractId: serviceForm.contractId, |
|
|
|
categoryId: serviceForm.categoryId, |
|
|
|
serviceProjectList: serviceForm.serviceProjectList, |
|
|
|
}; |
|
|
|
if (serviceForm.auto) { |
|
|
|
createPautoCreatePlanslans(params).then((_) => { |
|
|
|
message.success('操作成功'); |
|
|
|
closeService(); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
createPlansByHands(params).then((_) => { |
|
|
|
message.success('操作成功'); |
|
|
|
closeService(); |
|
|
|
}); |
|
|
|
} |
|
|
|
} else { |
|
|
|
message.warning('请选择服务协议'); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
message.warning('请选择服务协议') |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
@ -191,10 +198,10 @@ |
|
|
|
}; |
|
|
|
const closeService = () => { |
|
|
|
serviceVisible.value = false; |
|
|
|
serviceRef.value.resetFields() |
|
|
|
serviceForm.serviceProjectList = [] |
|
|
|
serviceProjectOptions.value = [] |
|
|
|
serviceRowKeys.value = [] |
|
|
|
serviceRef.value.resetFields(); |
|
|
|
serviceForm.serviceProjectList = []; |
|
|
|
serviceProjectOptions.value = []; |
|
|
|
serviceRowKeys.value = []; |
|
|
|
}; |
|
|
|
const contractOptions = ref([]); |
|
|
|
const getContractOptions = () => { |
|
|
@ -209,76 +216,74 @@ |
|
|
|
categoryOptions.value = res; |
|
|
|
}); |
|
|
|
}; |
|
|
|
const serviceProjectOptions = ref([]) |
|
|
|
const categoryIdChange = async(val:any)=>{ |
|
|
|
const res = await findLeafNodeInfos({categoryId:val }) |
|
|
|
serviceProjectOptions.value = res |
|
|
|
} |
|
|
|
const serviceProjectOptions = ref([]); |
|
|
|
const categoryIdChange = async (val: any) => { |
|
|
|
const res = await findLeafNodeInfos({ categoryId: val }); |
|
|
|
serviceProjectOptions.value = res; |
|
|
|
}; |
|
|
|
const getOptions = () => { |
|
|
|
getCategoryOptions(); |
|
|
|
getContractOptions(); |
|
|
|
}; |
|
|
|
//列表 |
|
|
|
const serviceColumns = [ |
|
|
|
{ |
|
|
|
title: '交付内容', |
|
|
|
dataIndex: 'deliverContent', |
|
|
|
key: 'deliverContent', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务项目', |
|
|
|
dataIndex: 'serviceProject', |
|
|
|
key: 'serviceProject', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '代码', |
|
|
|
dataIndex: 'code', |
|
|
|
key: 'code', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务内容', |
|
|
|
dataIndex: 'serviceContent', |
|
|
|
key: 'serviceContent', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '相应级别', |
|
|
|
dataIndex: 'responseLevel', |
|
|
|
key: 'responseLevel', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务频率', |
|
|
|
dataIndex: 'frequency', |
|
|
|
key: 'frequency', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '请求类型', |
|
|
|
dataIndex: 'responseType', |
|
|
|
key: 'responseType', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '交付方式', |
|
|
|
dataIndex: 'deliverType', |
|
|
|
key: 'deliverType', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '交付成果', |
|
|
|
dataIndex: 'deliverResult', |
|
|
|
key: 'deliverResult', |
|
|
|
}, |
|
|
|
] |
|
|
|
const serviceRowKeys = ref([]) |
|
|
|
const serviceRowSelection = ref( |
|
|
|
{ |
|
|
|
selectedRowKeys: serviceRowKeys, |
|
|
|
onChange:(selectedRowKeys:any)=>{ |
|
|
|
serviceForm.serviceProjectList = selectedRowKeys |
|
|
|
serviceRowKeys.value = selectedRowKeys |
|
|
|
} |
|
|
|
} |
|
|
|
) |
|
|
|
//下载 |
|
|
|
const download = async (record:any) => { |
|
|
|
const attachments = JSON.parse(record.attachment) |
|
|
|
title: '交付内容', |
|
|
|
dataIndex: 'deliverContent', |
|
|
|
key: 'deliverContent', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务项目', |
|
|
|
dataIndex: 'serviceProject', |
|
|
|
key: 'serviceProject', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '代码', |
|
|
|
dataIndex: 'code', |
|
|
|
key: 'code', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务内容', |
|
|
|
dataIndex: 'serviceContent', |
|
|
|
key: 'serviceContent', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '相应级别', |
|
|
|
dataIndex: 'responseLevel', |
|
|
|
key: 'responseLevel', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '服务频率', |
|
|
|
dataIndex: 'frequency', |
|
|
|
key: 'frequency', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '请求类型', |
|
|
|
dataIndex: 'responseType', |
|
|
|
key: 'responseType', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '交付方式', |
|
|
|
dataIndex: 'deliverType', |
|
|
|
key: 'deliverType', |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: '交付成果', |
|
|
|
dataIndex: 'deliverResult', |
|
|
|
key: 'deliverResult', |
|
|
|
}, |
|
|
|
]; |
|
|
|
const serviceRowKeys = ref([]); |
|
|
|
const serviceRowSelection = ref({ |
|
|
|
selectedRowKeys: serviceRowKeys, |
|
|
|
onChange: (selectedRowKeys: any) => { |
|
|
|
serviceForm.serviceProjectList = selectedRowKeys; |
|
|
|
serviceRowKeys.value = selectedRowKeys; |
|
|
|
}, |
|
|
|
}); |
|
|
|
//下载 |
|
|
|
const download = async (record: any) => { |
|
|
|
const attachments = JSON.parse(record.attachment); |
|
|
|
if (attachments && attachments.length > 0) { |
|
|
|
attachments.forEach((i: any) => { |
|
|
|
commonDownload(i.url).then((res) => { |
|
|
@ -288,6 +293,9 @@ |
|
|
|
}); |
|
|
|
} |
|
|
|
}; |
|
|
|
onActivated(() => { |
|
|
|
reload(); |
|
|
|
}); |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped></style> |
|
|
|