|
|
@@ -14,6 +14,7 @@ const quota_modal_template = `
|
|
|
<div class="modal-body">
|
|
|
<form>
|
|
|
<div class="form-group">
|
|
|
+ <input type="hidden" name="id" value="">
|
|
|
<input type="hidden" name="budget_id" value="">
|
|
|
<input type="hidden" name="project_id" value="">
|
|
|
<input type="hidden" name="item_id" value="">
|
|
|
@@ -58,13 +59,13 @@ const quota_modal_template = `
|
|
|
<input type="text" class="form-control" name="quota_code" id="quota_code" placeholder="请输入定额编号" />
|
|
|
</div>
|
|
|
<div class="d-flex pt-3 justify-content-center">
|
|
|
- <div class="form-check form-check-custom form-check-solid form-check-danger mb-3" id="is_edit_box">
|
|
|
- <input class="form-check-input" type="radio" checked value="0" name="is_edit" id="is_edit_1"/>
|
|
|
- <label class="form-check-label ms-3 text-danger" for="is_edit_1">覆盖(新增)源数据</label>
|
|
|
+ <div class="form-check form-check-custom form-check-solid form-check-danger mb-3 is_cover_box">
|
|
|
+ <input class="form-check-input" type="radio" checked value="1" name="is_cover" id="is_cover_1"/>
|
|
|
+ <label class="form-check-label ms-3 text-danger" for="is_cover_1">覆盖(修改)源数据</label>
|
|
|
</div>
|
|
|
- <div class="form-check form-check-solid ms-5 mb-3" id="is_edit_box">
|
|
|
- <input class="form-check-input" type="radio" value="1" name="is_edit" id="is_edit_2"/>
|
|
|
- <label class="form-check-label ms-3 text-primary" for="is_edit_2">修改(新增)源数据</label>
|
|
|
+ <div class="form-check form-check-solid ms-5 mb-3 is_cover_box">
|
|
|
+ <input class="form-check-input" type="radio" value="0" name="is_cover" id="is_cover_2"/>
|
|
|
+ <label class="form-check-label ms-3 text-primary" for="is_cover_2">新增源数据</label>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -85,7 +86,7 @@ const nav_template = `<ul id="nav_tab" class="nav nav-tabs nav-line-tabs nav-lin
|
|
|
<button type="button" class="nav-link {2} btn-light-primary btn-active-color-primary" data-id="{0}" data-bs-toggle="tab" data-bs-target="#iwb_tab_{0}">{1}</button>
|
|
|
</li>`,
|
|
|
tab_content_template = `<div class="tab-pane h-100" id="iwb_tab_{0}" role="tabpanel">{1}</div>`,
|
|
|
- table_add_quota_btn_template = `` //`<button type="button" class="quota_add_btn btn btn-primary btn-sm" onclick="Add_Quota('{0}')">添加定额</button>`,
|
|
|
+ table_add_quota_btn_template = `<button type="button" class="quota_add_btn btn btn-primary btn-sm" onclick="Send_Quota_Batch('{0}')">批量推送</button>` //`<button type="button" class="quota_add_btn btn btn-primary btn-sm" onclick="Add_Quota('{0}')">添加定额</button>`,
|
|
|
table_run_select_template = `<select class="form-select form-select-sm me-5" name="process_status">
|
|
|
<option value="">全部运行状态</option>
|
|
|
<option value="0">草稿</option>
|
|
|
@@ -97,11 +98,11 @@ const nav_template = `<ul id="nav_tab" class="nav nav-tabs nav-line-tabs nav-lin
|
|
|
<!--<option value="4">已修改</option>-->
|
|
|
</select>`,
|
|
|
table_send_select_template = `<select class="form-select form-select-sm me-5" name="send_status">
|
|
|
- <option value="">全部发送状态</option>
|
|
|
- <option value="0">未发送</option>
|
|
|
- <option value="1">发送中</option>
|
|
|
- <option value="200">发送成功</option>
|
|
|
- <option value="2">发送失败</option>
|
|
|
+ <option value="">全部推送状态</option>
|
|
|
+ <option value="0">未推送</option>
|
|
|
+ <option value="1">推送中</option>
|
|
|
+ <option value="200">推送成功</option>
|
|
|
+ <option value="2">推送失败</option>
|
|
|
<option value="3">数据变更</option>
|
|
|
</select>`,
|
|
|
table_template = `<div class="table-box table-responsive" data-id="{0}" id="table_box_{0}">
|
|
|
@@ -314,6 +315,7 @@ function LoadQuotaTable(table){
|
|
|
const url = `${$quotaBox.data("table-url")}/${budget_id}/${project_id}/${item_code}`
|
|
|
IwbTable(table,{
|
|
|
url,
|
|
|
+ checkBox: true,
|
|
|
columns: [
|
|
|
{
|
|
|
title: '序号',
|
|
|
@@ -398,13 +400,13 @@ function LoadQuotaTable(table){
|
|
|
// str+= `<span class="badge badge-danger">数据变更</span>`
|
|
|
// }
|
|
|
if(row.send_status === 0){
|
|
|
- str+= `<span class="badge badge-primary ms-3">未发送</span>`
|
|
|
+ str+= `<span class="badge badge-primary ms-3">未推送</span>`
|
|
|
}else if (row.send_status === 1){
|
|
|
- str+= `<span class="badge badge-warning ms-3">发送中</span>`
|
|
|
+ str+= `<span class="badge badge-warning ms-3">推送中</span>`
|
|
|
}else if (row.send_status === 200){
|
|
|
- str+= `<span class="badge badge-success ms-3">发送成功</span>`
|
|
|
+ str+= `<span class="badge badge-success ms-3">推送成功</span>`
|
|
|
}else if (row.send_status === 2){
|
|
|
- str+= `<span class="badge badge-danger ms-3">发送失败</span>`
|
|
|
+ str+= `<span class="badge badge-danger ms-3">推送失败</span>`
|
|
|
}else if (row.send_status === 3){
|
|
|
str+= `<span class="badge badge-danger ms-3">数据变更</span>`
|
|
|
}
|
|
|
@@ -429,13 +431,13 @@ function LoadQuotaTable(table){
|
|
|
// str += `<button type="button" class="btn btn-icon btn-sm btn-light-info" data-bs-toggle="tooltip" data-bs-placement="top" title="重新处理" onclick="ReStartProcessQuota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-book-square fs-1"><span class="path1"></span><span class="path2"></span><span class="path3"></span></i></button>`
|
|
|
// }
|
|
|
if (row.send_status === 0) {
|
|
|
- str += `<button type="button" class="btn btn-icon btn-sm btn-light-primary" data-bs-toggle="tooltip" data-bs-placement="top" title="开始发送" onclick="StartSendQuota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-send fs-1"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
+ str += `<button type="button" class="btn btn-icon btn-sm ${row.quota_id?'btn-primary':'btn-light-primary'}" data-bs-toggle="tooltip" data-bs-placement="top" title="开始推送" onclick="StartSendQuota(${row.id}, ${row.budget_id}, ${row.quota_id})"><i class="ki-duotone ki-send fs-3"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
} else if (row.send_status === 200) {
|
|
|
- str += `<button type="button" class="btn btn-icon btn-sm btn-light-warning" data-bs-toggle="tooltip" data-bs-placement="top" title="重新发送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-send fs-1"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
+ str += `<button type="button" class="btn btn-icon btn-sm ${row.quota_id?'btn-warning':'btn-light-warning'}" data-bs-toggle="tooltip" data-bs-placement="top" title="重新推送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id}, ${row.quota_id})"><i class="ki-duotone ki-send fs-3"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
} else if (row.send_status === 2) {
|
|
|
- str += `<button type="button" class="btn btn-icon btn-sm btn-light-danger" data-bs-toggle="tooltip" data-bs-placement="top" title="重新发送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-send fs-1"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
+ str += `<button type="button" class="btn btn-icon btn-sm ${row.quota_id?'btn-danger':'btn-light-danger'}" data-bs-toggle="tooltip" data-bs-placement="top" title="重新推送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id}, ${row.quota_id})"><i class="ki-duotone ki-send fs-3"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
} else if (row.send_status === 3) {
|
|
|
- str += `<button type="button" class="btn btn-icon btn-sm btn-light-info" data-bs-toggle="tooltip" data-bs-placement="top" title="重新发送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-send fs-1"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
+ str += `<button type="button" class="btn btn-icon btn-sm ${row.quota_id?'btn-info':'btn-light-info'}" data-bs-toggle="tooltip" data-bs-placement="top" title="重新推送" onclick="ReStartSendQuota(${row.id}, ${row.budget_id}, ${row.quota_id})"><i class="ki-duotone ki-send fs-3"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
}
|
|
|
str+=`<button type="button" class="btn btn-icon btn-sm btn-light-primary" data-bs-toggle="tooltip" data-bs-placement="top" title="编辑" onclick="Edit_Quota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-message-edit fs-1"><span class="path1"></span><span class="path2"></span></i></button>`
|
|
|
str+=`<button type="button" class="btn btn-icon btn-sm btn-light-danger" data-bs-toggle="tooltip" data-bs-placement="top" title="删除" onclick="Delete_Quota(${row.id}, ${row.budget_id})"><i class="ki-duotone ki-trash-square fs-1"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span></i></button>`
|
|
|
@@ -455,14 +457,17 @@ function SetBudgetData($el){
|
|
|
function Add_Quota(budget_id,) {
|
|
|
AddModal($modalQuota, () => {
|
|
|
SetBudgetData($modalQuota)
|
|
|
- $modalQuota.find('[name="quota_id"]').val('0');
|
|
|
+ $modalQuota.find('[name="id"]').val('0');
|
|
|
$modalQuota.find('[name="quota_id"]').val('0');
|
|
|
$modalQuota.find('[name="task_id"]').val('0');
|
|
|
$modalQuota.find('[name="budget_id"]').val(budget_id);
|
|
|
+ $modalQuota.find('[name="is_cover"]').val('0')
|
|
|
+ $modalQuota.find('.is_cover_box').hide()
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function Edit_Quota(id) {
|
|
|
+ $modalQuota.find('.is_cover_box').hide()
|
|
|
EditModal($modalQuota,()=>{
|
|
|
IwbAjax_1({
|
|
|
url:`/api/quota/get/${id}`,
|
|
|
@@ -471,9 +476,11 @@ function Edit_Quota(id) {
|
|
|
console.error(res.message)
|
|
|
return
|
|
|
}
|
|
|
- const data = res.data
|
|
|
+ const data = res.data,
|
|
|
// SetBudgetData(budget_id)
|
|
|
- $modalQuota.find('[name="quota_id"]').val(data.id);
|
|
|
+ quota_id = data.quota_id
|
|
|
+ $modalQuota.find('[name="id"]').val(data.id);
|
|
|
+ $modalQuota.find('[name="quota_id"]').val(quota_id);
|
|
|
$modalQuota.find('[name="task_id"]').val(data.task_id);
|
|
|
$modalQuota.find('[name="budget_id"]').val(data.budget_id);
|
|
|
$modalQuota.find('[name="project_id"]').val(data.project_id);
|
|
|
@@ -487,14 +494,18 @@ function Edit_Quota(id) {
|
|
|
$modalQuota.find('#ex_amount').html(data.ex_amount);
|
|
|
$modalQuota.find('#ex_cell').html(data.ex_cell);
|
|
|
$modalQuota.find('#ex_unit').html(data.ex_unit);
|
|
|
-
|
|
|
+ $modalQuota.find('[name="is_cover"]').val('0')
|
|
|
+ if(quota_id){
|
|
|
+ $modalQuota.find('.is_cover_box').show()
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function SaveQuota(isSubmit){
|
|
|
- const quota_id = $modalQuota.find('[name="quota_id"]').val(),
|
|
|
+ const id = $modalQuota.find('[name="id"]').val(),
|
|
|
+ quota_id = $modalQuota.find('[name="quota_id"]').val(),
|
|
|
task_id = $modalQuota.find('[name="task_id"]').val(),
|
|
|
budget_id = $modalQuota.find('[name="budget_id"]').val(),
|
|
|
project_id = $modalQuota.find('[name="project_id"]').val(),
|
|
|
@@ -503,11 +514,13 @@ function SaveQuota(isSubmit){
|
|
|
entry_name = $modalQuota.find('[name="entry_name"]').val(),
|
|
|
amount = $modalQuota.find('[name="amount"]').val(),
|
|
|
units = $modalQuota.find('[name="units"]').val(),
|
|
|
- quota_code = $modalQuota.find('[name="quota_code"]').val()
|
|
|
+ quota_code = $modalQuota.find('[name="quota_code"]').val(),
|
|
|
+ is_cover = $modalQuota.find('[name="is_cover"]').val()
|
|
|
IwbAjax({
|
|
|
url:`/api/quota/save`,
|
|
|
data:{
|
|
|
- id: quota_id,
|
|
|
+ id,
|
|
|
+ quota_id,
|
|
|
task_id,
|
|
|
budget_id,
|
|
|
project_id,
|
|
|
@@ -517,7 +530,8 @@ function SaveQuota(isSubmit){
|
|
|
amount,
|
|
|
units,
|
|
|
quota_code,
|
|
|
- run_now: isSubmit?'true':'false'
|
|
|
+ run_now: isSubmit?'true':'false',
|
|
|
+ is_cover: is_cover?'true':'false'
|
|
|
},
|
|
|
modal:$modalQuota,
|
|
|
table:`#table_${budget_id}`
|
|
|
@@ -536,9 +550,59 @@ function Delete_Quota(id,budget_id){
|
|
|
// function ReStartProcessQuota(id,budget_id){
|
|
|
// ConfirmUrl('确定重新开始处理吗?',`/api/quota/start_process/${id}`,`#table_${budget_id}`)
|
|
|
// }
|
|
|
-function StartSendQuota(id,budget_id){
|
|
|
- ConfirmUrl('确定开始发送吗?',`/api/quota/start_send/${id}`,`#table_${budget_id}`)
|
|
|
+
|
|
|
+function StartSendQuota(ids,budget_id,is_cover){
|
|
|
+ SendQuota('确定开始推送数据吗?',ids,budget_id,is_cover)
|
|
|
+}
|
|
|
+function ReStartSendQuota(ids,budget_id,is_cover){
|
|
|
+ SendQuota('确定重新开始推送数据吗?',ids,budget_id,is_cover)
|
|
|
}
|
|
|
-function ReStartSendQuota(id,budget_id){
|
|
|
- ConfirmUrl('确定重新开始发送吗?',`/api/quota/start_send/${id}`,`#table_${budget_id}`)
|
|
|
+function Send_Quota_Batch(budget_id){
|
|
|
+ const $table = `#table_${budget_id}`,
|
|
|
+ select_ids = IwbTableGetSelectedIds($table)
|
|
|
+ if(select_ids.length){
|
|
|
+ const select_ids_str = select_ids.join(',')
|
|
|
+ SendQuota(`确定批量推送这些数据吗?[${select_ids_str}]`,select_ids_str,budget_id,true)
|
|
|
+ }else{
|
|
|
+ MsgWarning('没有选择数据,请选择要推送的数据!')
|
|
|
+ }
|
|
|
}
|
|
|
+function SendQuota(title,ids,budget_id,is_cover){
|
|
|
+ const opts={
|
|
|
+ text: title,
|
|
|
+ icon: "info",
|
|
|
+ buttonsStyling: false,
|
|
|
+ showCancelButton: true,
|
|
|
+ showConfirmButton: true,
|
|
|
+ showDenyButton: !!is_cover,
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ confirmButtonText: "新增",
|
|
|
+ denyButtonText: "覆盖",
|
|
|
+ customClass: {
|
|
|
+ cancelButton: "btn btn-light mx-2",
|
|
|
+ confirmButton: "btn btn-primary mx-2",
|
|
|
+ denyButton: "btn btn-danger mx-2"
|
|
|
+ },
|
|
|
+ toast:false
|
|
|
+ }
|
|
|
+ Swal.fire(opts).then((result)=>{
|
|
|
+ console.log("CONFIRM",result)
|
|
|
+ if(result.isConfirmed){
|
|
|
+ _send(false)
|
|
|
+ }else if(result.isDenied){
|
|
|
+ _send(true)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ function _send(is_cover){
|
|
|
+ console.log("is_cover",is_cover,ids)
|
|
|
+ IwbAjax({
|
|
|
+ url:`/api/quota/start_send`,
|
|
|
+ data:{
|
|
|
+ ids,
|
|
|
+ is_cover:is_cover?'true':'false'
|
|
|
+ },
|
|
|
+ modal:$modalQuota,
|
|
|
+ table:`#table_${budget_id}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|