diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/BudgetProjectServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/BudgetProjectServiceImpl.java index 4e8b45e7082e5e56ec85ffc4311fef11cf359b56..c7200d32173ae23ff00a701ef8d31b9102992624 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/BudgetProjectServiceImpl.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/business/service/BudgetProjectServiceImpl.java @@ -61,29 +61,26 @@ public class BudgetProjectServiceImpl implements BudgetProjectService { ); } JSONArray stationArray = stationObj.getJSONObject("data").getJSONArray("listData"); - if (stationArray.size() == 0) { - throw new DataBusinessException( - Error.builder() - .message("鏌ヨ澶辫触!") - .responseCode(ResponseCode.DATA_ACCESS_EXCEPTION) - .build() - ); - } - List<BudgetProjectResult> records=new ArrayList<>(); - for (int i=0;i<stationArray.size();i++) { - JSONObject object=stationArray.getJSONObject(i); - BudgetProjectResult projectOut=new BudgetProjectResult(); - projectOut.setProjectName(object.getString("projectName")); - projectOut.setProjectCode(object.getString("projectCode")); - projectOut.setChargeName(object.getString("firstChargeNo")+"-"+object.getString("firstChargeName")); - records.add(projectOut); - } Pagination pagination = new Pagination(); - pagination.setCurrent(qry.getPageIndex()); - pagination.setSize(qry.getPageSize()); - pagination.setRecords(records); - pagination.setTotal( stationObj.getJSONObject("data").getInteger("dataCount")); - pagination.setPages( stationObj.getJSONObject("data").getInteger("totalPages")); + if (stationArray.size() != 0) { + + + List<BudgetProjectResult> records = new ArrayList<>(); + for (int i = 0; i < stationArray.size(); i++) { + JSONObject object = stationArray.getJSONObject(i); + BudgetProjectResult projectOut = new BudgetProjectResult(); + projectOut.setProjectName(object.getString("projectName")); + projectOut.setProjectCode(object.getString("projectCode")); + projectOut.setChargeName(object.getString("firstChargeNo") + "-" + object.getString("firstChargeName")); + records.add(projectOut); + } + + pagination.setCurrent(qry.getPageIndex()); + pagination.setSize(qry.getPageSize()); + pagination.setRecords(records); + pagination.setTotal(stationObj.getJSONObject("data").getInteger("dataCount")); + pagination.setPages(stationObj.getJSONObject("data").getInteger("totalPages")); + } return pagination; } } diff --git a/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/BudgetProjectController.java b/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/BudgetProjectController.java index 590bd0387ee720805a06b6f76831865a145f069a..8eff028b52d9ff92dbd54bc8b891d3fd0a12697a 100644 --- a/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/BudgetProjectController.java +++ b/ServiceSiteCommon/src/main/java/com/seasky/template/web/controller/BudgetProjectController.java @@ -9,9 +9,10 @@ import com.seasky.template.web.dto.request.BudgetProjectRequest; import com.seasky.template.web.dto.result.BudgetProjectResult; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; import static com.seasky.core.common.Response.ok; - +@RestController public class BudgetProjectController extends BaseControllerImpl implements IBudgetProjectController { @Autowired BudgetProjectService service; diff --git a/WebSite/src/views/common/invoice.vue b/WebSite/src/views/common/invoice.vue index 9bd938fc8c291794dcd41e8e71f834333d2ea90e..9139eb99df4315c514df759a18f399a28f1177e9 100644 --- a/WebSite/src/views/common/invoice.vue +++ b/WebSite/src/views/common/invoice.vue @@ -39,7 +39,7 @@ <el-form-item label="椤圭洰鍚嶇О"> <el-input style="width: 90%" clearable> <template #append> - <el-button icon="el-icon-search" @click="choiceEmployee" /> </template + <el-button icon="el-icon-search" @click="choiceProject" /> </template ></el-input> <span style="color: red"> *</span></el-form-item @@ -96,7 +96,7 @@ ><template #append> <el-button icon="el-icon-search" - @click="choiceProject(scope.row)" + @click="choiceInvoiceProject(scope.row)" /> </template ></el-input> <span style="color: red"> *</span> @@ -216,6 +216,10 @@ :invoiceProjectPara='invoiceProjectPara' @updateInvoiceProject="updateInvoiceProject" ></InvoiceProject> + <Project v-model:visible="projectPara.visible" + v-if="projectPara.visible" + :projectPara='projectPara' + @updateProject="updateProject"></Project> </template> <script> @@ -223,9 +227,10 @@ import { onMounted, reactive, toRefs } from 'vue'; import InvoiceProject from '@/views/common/invoiceproject.vue'; import Department from '@/api/Department'; import { ElNotification } from 'element-plus'; +import Project from '@/views/common/project.vue' export default { name: 'invoice', - components:{InvoiceProject}, + components:{InvoiceProject,Project}, setup() { const data = reactive({ invoiceTypeList: [ @@ -249,13 +254,18 @@ export default { invoiceId: '', invoiceDetailCmdList: [], incomeId: '', - repairProject:'', + projectCode:'', + projectName:'', + projectCharge:'' }, invoiceProjectPara:{ visible:false, row:{} }, - departmentList:[] + departmentList:[], + projectPara:{ + visible:false + } }); onMounted(async()=>{ const res=await Department.selectList({}); @@ -295,7 +305,7 @@ export default { } }); }; - const choiceProject=(row)=>{ + const choiceInvoiceProject=(row)=>{ data.invoiceProjectPara.visible=true; data.invoiceProjectPara.row=row; @@ -306,13 +316,21 @@ export default { data.invoiceProjectPara.row.projectName=d.projectContent; data.invoiceProjectPara.row.rate=d.tax; data.invoiceProjectPara.row.favouredPolicy = d.favouredPolicy; + } + const choiceProject=()=>{ + data.projectPara.visible=true; + } + const updateProject=(row)=>{ + } return { ...toRefs(data), addTableData, choiceProject, + choiceInvoiceProject, updateInvoiceProject, - deleteTableData + deleteTableData, + updateProject }; }, }; diff --git a/WebSite/src/views/common/project.vue b/WebSite/src/views/common/project.vue index 8aa2af0d6162a184c888816af192bc9d587fb8b0..770a126a85424cdce9aad7f3d9ef321317b5b486 100644 --- a/WebSite/src/views/common/project.vue +++ b/WebSite/src/views/common/project.vue @@ -59,6 +59,7 @@ highlight-current-row @row-click="handleProjectChange" > + <el-table-column label="椤圭洰缂栧彿" ><template v-slot="slot"> <span class="ellipsisclass">{{ slot.row.projectCode }}</span> @@ -93,8 +94,10 @@ import { reactive, toRefs } from 'vue'; import Common from '@/api/Common'; import { ElMessage, ElNotification,ElMessageBox } from 'element-plus'; +import Pagination from '@/components/Pagination'; export default { name:'project', +components:{Pagination}, emits: ['updateProject','update:visible'], props:['projectPara'], setup(props,context){ @@ -134,7 +137,7 @@ setup(props,context){ const handleProjectChange=(row)=>{ if(row){ closeProjectDialog(); - context.emit('updateProject',row.projectCode); + context.emit('updateProject',row); } } return{