|
|
@@ -66,6 +66,53 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+ /** 下发/初选:须同时有邮箱和手机号才可选 */
|
|
|
+ function procuremenReviewCompanySelectable(c) {
|
|
|
+ if (!c || typeof c !== 'object') {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (parseInt(c.can_select, 10) === 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (parseInt(c.can_select, 10) === 1) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ var email = String(c.email || '').trim();
|
|
|
+ var phone = String(c.phone || '').trim();
|
|
|
+ return email !== '' && phone !== '';
|
|
|
+ }
|
|
|
+
|
|
|
+ function procuremenReviewBindCompanyCb($cb, c, selectedMap, opts) {
|
|
|
+ opts = opts || {};
|
|
|
+ $cb.data('company', c);
|
|
|
+ if (opts.existing) {
|
|
|
+ $cb.prop('disabled', true).prop('checked', true);
|
|
|
+ return $cb;
|
|
|
+ }
|
|
|
+ if (!procuremenReviewCompanySelectable(c)) {
|
|
|
+ $cb.prop('disabled', true).prop('checked', false);
|
|
|
+ return $cb;
|
|
|
+ }
|
|
|
+ var k = procuremenReviewCompanyKey(c);
|
|
|
+ if (k && selectedMap && selectedMap[k]) {
|
|
|
+ $cb.prop('checked', true);
|
|
|
+ }
|
|
|
+ return $cb;
|
|
|
+ }
|
|
|
+
|
|
|
+ function procuremenReviewSyncCompanyMaster($scope) {
|
|
|
+ var $root = $scope && $scope.length ? $scope : $(document);
|
|
|
+ var $cbs = $root.find('#review-company-tbody .review-company-cb:not(:disabled)');
|
|
|
+ var $master = $root.find('#review-check-all');
|
|
|
+ if (!$cbs.length) {
|
|
|
+ $master.prop('checked', false).prop('indeterminate', false);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var n = $cbs.filter(':checked').length;
|
|
|
+ $master.prop('checked', n === $cbs.length);
|
|
|
+ $master.prop('indeterminate', n > 0 && n < $cbs.length);
|
|
|
+ }
|
|
|
+
|
|
|
function procuremenLayerTop() {
|
|
|
try {
|
|
|
if (typeof top !== 'undefined' && top.Layer) {
|
|
|
@@ -591,7 +638,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
var issuedOnlyCols = ['purchase_order_id'];
|
|
|
var pendingOnlyCols = ['po_amount_fill_cnt'];
|
|
|
var pickedOnlyCols = ['picked_supplier_name'];
|
|
|
- var auditOnlyCols = ['bid_open_status_text', 'notify_supplier_text'];
|
|
|
+ var auditOnlyCols = ['bid_open_status_text', 'notify_supplier_text', 'order_status_text'];
|
|
|
var allOnlyCols = ['ID'];
|
|
|
|
|
|
Controller.currYm = ($layout.data('defaultYm') || '').toString();
|
|
|
@@ -700,13 +747,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
});
|
|
|
pickedOnlyCols.forEach(function (field) {
|
|
|
try {
|
|
|
- table.bootstrapTable(stageConfirm ? 'showColumn' : 'hideColumn', field);
|
|
|
+ table.bootstrapTable((stageAudit || stageConfirm) ? 'showColumn' : 'hideColumn', field);
|
|
|
} catch (ignore) {
|
|
|
}
|
|
|
});
|
|
|
auditOnlyCols.forEach(function (field) {
|
|
|
try {
|
|
|
- table.bootstrapTable(stageAudit ? 'showColumn' : 'hideColumn', field);
|
|
|
+ table.bootstrapTable((stageAudit || stageConfirm) ? 'showColumn' : 'hideColumn', field);
|
|
|
} catch (ignore) {
|
|
|
}
|
|
|
});
|
|
|
@@ -1051,8 +1098,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
var indexShowall = indexInitWffTab === 'pick' || indexInitWffTab === 'audit';
|
|
|
var indexShowIssued = indexInitWffTab === 'audit' || indexInitWffTab === 'confirm';
|
|
|
var indexShowPendingOnly = indexInitWffTab === 'audit';
|
|
|
- var indexShowPickedOnly = indexInitWffTab === 'confirm';
|
|
|
- var indexShowAuditSuppliers = indexInitWffTab === 'audit';
|
|
|
+ var indexShowPickedOnly = indexInitWffTab === 'audit' || indexInitWffTab === 'confirm';
|
|
|
+ var indexShowAuditSuppliers = indexInitWffTab === 'audit' || indexInitWffTab === 'confirm';
|
|
|
+ var indexShowOrderStatus = indexInitWffTab === 'audit' || indexInitWffTab === 'confirm';
|
|
|
function procuremenEscAttr(s) {
|
|
|
return String(s == null ? '' : s)
|
|
|
.replace(/&/g, '&')
|
|
|
@@ -1089,8 +1137,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
var lines = raw.split('\n').map(function (s) {
|
|
|
return s.trim();
|
|
|
}).filter(Boolean);
|
|
|
- if (lines.length === 1 && /[、;]/.test(lines[0])) {
|
|
|
- lines = lines[0].split(/[、;]+/).map(function (s) {
|
|
|
+ if (lines.length === 1 && /[、;,,]/.test(lines[0])) {
|
|
|
+ lines = lines[0].split(/[、;,,]+/).map(function (s) {
|
|
|
return s.trim();
|
|
|
}).filter(Boolean);
|
|
|
}
|
|
|
@@ -1283,15 +1331,23 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
'已指定供应商': '已指定供应商'
|
|
|
};
|
|
|
}
|
|
|
+ if (field === 'order_status_text') {
|
|
|
+ return {
|
|
|
+ '待确认': '待确认',
|
|
|
+ '待审核': '待审核',
|
|
|
+ '已审核': '已审核'
|
|
|
+ };
|
|
|
+ }
|
|
|
var list = filterOpts && filterOpts[field] ? filterOpts[field] : {};
|
|
|
return procuremenNormalizeFilterMap(list);
|
|
|
}
|
|
|
- // 表头标题文字后小筛选:承揽部门 / 工序名称 / 类型 / 开标状态(确认页)
|
|
|
- Controller.colFilters = {CCLBMMC: '', CGYMC: '', czlyq: '', bid_open_status_text: ''};
|
|
|
+ // 表头标题文字后小筛选:承揽部门 / 工序名称 / 类型 / 订单状态 / 开标状态
|
|
|
+ Controller.colFilters = {CCLBMMC: '', CGYMC: '', czlyq: '', order_status_text: '', bid_open_status_text: ''};
|
|
|
var procuremenHeaderFilterFields = [
|
|
|
{field: 'CCLBMMC', label: '承揽部门'},
|
|
|
{field: 'CGYMC', label: '工序名称'},
|
|
|
{field: 'czlyq', label: '类型'},
|
|
|
+ {field: 'order_status_text', label: '订单状态'},
|
|
|
{field: 'bid_open_status_text', label: '开标状态'}
|
|
|
];
|
|
|
function procuremenEscOption(s) {
|
|
|
@@ -1452,7 +1508,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
});
|
|
|
var indexTableColumns = [
|
|
|
{checkbox: true, field: 'state', visible: indexShowall, align: 'center', width: 42, class: 'procuremen-col-checkbox'},
|
|
|
- {field: 'CCYDH', title: __('订单号'), operate: 'LIKE', table: 'b', width: 120, align: 'center', sortable: true, class: 'procuremen-th-sort-tight'},
|
|
|
+ {field: 'CCYDH', title: __('订单号'), operate: 'LIKE', table: 'b', width: 120, align: 'center', sortable: true,
|
|
|
+ class: 'procuremen-th-sort-tight procuremen-supplier-lines-cell',
|
|
|
+ formatter: function (v) {
|
|
|
+ return procuremenSupplierLinesCell(v, this.width || 120);
|
|
|
+ }
|
|
|
+ },
|
|
|
{field: 'CYJMC', title: __('印件名称'), operate: 'LIKE', table: 'b', width: 200, align: 'left', class: 'procuremen-cell-wrap',
|
|
|
formatter: function (v) {
|
|
|
if (v == null || v === '') {
|
|
|
@@ -1462,15 +1523,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
}
|
|
|
},
|
|
|
{field: 'CCLBMMC', title: '承揽部门', operate: '=', searchList: procuremenSearchList('CCLBMMC'), table: 'b', width: 140, align: 'center', class: 'procuremen-cell-wrap'},
|
|
|
- {field: 'CGYMC', title: __('工序名称'), operate: '=', searchList: procuremenSearchList('CGYMC'), table: 'a', width: 140, align: 'left', class: 'procuremen-cell-wrap',
|
|
|
+ {field: 'CGYMC', title: __('工序名称'), operate: '=', searchList: procuremenSearchList('CGYMC'), table: 'a', width: 140, align: 'left',
|
|
|
+ class: 'procuremen-supplier-lines-cell',
|
|
|
formatter: function (v) {
|
|
|
- if (v == null || v === '') {
|
|
|
- return '';
|
|
|
- }
|
|
|
- // 多工序用顿号间隔,换行更易读
|
|
|
- var s = String(v).replace(/[、,,]+/g, '、');
|
|
|
- return '<span style="white-space:normal;word-break:break-all;line-height:1.5;">'
|
|
|
- + procuremenEscHtml(s) + '</span>';
|
|
|
+ return procuremenSupplierLinesCell(v, this.width || 140);
|
|
|
}
|
|
|
},
|
|
|
{field: 'czlyq', title: '类型', operate: '=', searchList: procuremenSearchList('czlyq'), table: 'b', width: 90, align: 'center',
|
|
|
@@ -1498,6 +1554,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
},
|
|
|
{field: 'This_quantity', title: '本次数量', operate: 'LIKE', table: 'a', width: 90, align: 'center',
|
|
|
visible: true,
|
|
|
+ class: 'procuremen-supplier-lines-cell',
|
|
|
formatter: function (v, row, index) {
|
|
|
var tab = Controller.wffTab || 'pick';
|
|
|
if (tab === 'pick') {
|
|
|
@@ -1507,16 +1564,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
+ 'data-field="This_quantity" data-row-index="' + index + '" value="'
|
|
|
+ procuremenEscAttr(val) + '" placeholder="填写" autocomplete="off"/>';
|
|
|
}
|
|
|
- if (v == null || v === '') {
|
|
|
- return '';
|
|
|
- }
|
|
|
- var s = String(v).split(/[、,,]+/).map(function (x) {
|
|
|
- return $.trim(x);
|
|
|
- }).filter(Boolean).join('、');
|
|
|
- if (!s) {
|
|
|
- return '';
|
|
|
- }
|
|
|
- return '<span style="white-space:normal;line-height:1.5;">' + procuremenEscHtml(s) + '</span>';
|
|
|
+ return procuremenSupplierLinesCell(v, this.width || 90);
|
|
|
}
|
|
|
},
|
|
|
{field: 'ceilingPrice', title: '最高限价', operate: 'LIKE', table: 'a', width: 90, align: 'center',
|
|
|
@@ -1547,6 +1595,37 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
return '<span style="white-space:normal;line-height:1.5;">' + procuremenEscHtml(s) + '</span>';
|
|
|
}
|
|
|
},
|
|
|
+ {field: 'order_status_text', title: '订单状态', operate: false, table: 'a', width: 100, align: 'center',
|
|
|
+ visible: indexShowOrderStatus,
|
|
|
+ formatter: function (v, row) {
|
|
|
+ var t = (v != null && v !== '') ? String(v).trim() : '';
|
|
|
+ if (!t) {
|
|
|
+ var wf = row && row.wflow_status != null ? String(row.wflow_status).trim() : '';
|
|
|
+ if (wf === '待确认' || wf === '1') {
|
|
|
+ t = '待确认';
|
|
|
+ } else if (wf === '待审批' || wf === '2') {
|
|
|
+ t = '待审核';
|
|
|
+ } else if (wf === '已审核' || wf === '3') {
|
|
|
+ t = '已审核';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (t === '待审批') {
|
|
|
+ t = '待审核';
|
|
|
+ }
|
|
|
+ if (!t) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ var cls = 'text-muted';
|
|
|
+ if (t === '待确认') {
|
|
|
+ cls = 'text-warning';
|
|
|
+ } else if (t === '待审核') {
|
|
|
+ cls = 'text-info';
|
|
|
+ } else if (t === '已审核') {
|
|
|
+ cls = 'text-success';
|
|
|
+ }
|
|
|
+ return '<span class="' + cls + '">' + procuremenEscHtml(t) + '</span>';
|
|
|
+ }
|
|
|
+ },
|
|
|
{field: 'bid_open_status_text', title: '开标状态', operate: false, table: 'a', width: 110, align: 'center',
|
|
|
visible: indexShowAuditSuppliers,
|
|
|
formatter: function (v, row) {
|
|
|
@@ -1593,7 +1672,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
{field: 'CDW', title: __('单位'), operate: 'LIKE', table: 'a', width: 88, align: 'center'},
|
|
|
{field: 'CDF', title: __('订法'), operate: 'LIKE', table: 'a', width: 90, align: 'center', class: 'procuremen-cell-wrap'},
|
|
|
{field: 'cGzzxMc', title: __('外厂单位'), operate: 'LIKE', table: 'a', width: 200, align: 'center', class: 'procuremen-cell-wrap'},
|
|
|
- {field: 'MBZ', title: __('备注'), operate: 'LIKE', table: 'a', width: 240, align: 'center', class: 'procuremen-cell-wrap',
|
|
|
+ {field: 'MBZ', title: '招标备注', operate: 'LIKE', table: 'a', width: 240, align: 'center', class: 'procuremen-cell-wrap',
|
|
|
formatter: function (v, row, index) {
|
|
|
var tab = Controller.wffTab || 'pick';
|
|
|
if (tab === 'pick') {
|
|
|
@@ -1647,7 +1726,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
{field: 'dputrecord', title: __('提交日期'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false, table: 'b', width: 176, align: 'center', sortable: true, class: 'procuremen-th-sort-tight',
|
|
|
visible: indexInitWffTab === 'pick'
|
|
|
},
|
|
|
- {field: 'operate',title: '操作',width: 168,align: 'center',fixed: 'right', operate: false,
|
|
|
+ {field: 'operate',title: '操作',width: indexInitWffTab === 'audit' ? 178 : 220,align: 'center',fixed: 'right', operate: false,
|
|
|
visible: indexInitWffTab !== 'pick',
|
|
|
table: table,
|
|
|
formatter: function (value, row, index) {
|
|
|
@@ -1658,26 +1737,42 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
}
|
|
|
var areaDetails = ' data-area=\'["100%","100%"]\'';
|
|
|
var areaAudit = ' data-area=\'["98%","92%"]\'';
|
|
|
- var areaConfirmOutward = ' data-area=\'["98%","92%"]\'';
|
|
|
- var parts = [];
|
|
|
+ var areaConfirmOutward = ' data-area=\'["100%","100%"]\'';
|
|
|
+ var primary = '';
|
|
|
+ var detail = '';
|
|
|
if (tab === 'pick') {
|
|
|
return '';
|
|
|
} else if (tab === 'audit') {
|
|
|
- if (procuremenCan('auditissue')) {
|
|
|
- parts.push('<a class="btn btn-xs btn-primary procuremen-op-open procuremen-btn-audit-issue"' + areaAudit + ' href="procuremen/auditissue" data-row-index="' + index + '" title=""><i class="fa fa-check"></i> 选择供应商</a>');
|
|
|
+ var stA = row && row.order_status_text != null ? String(row.order_status_text).trim() : '';
|
|
|
+ if (stA === '待审批') {
|
|
|
+ stA = '待审核';
|
|
|
+ }
|
|
|
+ if (stA === '待确认' && procuremenCan('auditissue')) {
|
|
|
+ primary = '<a class="btn btn-xs btn-primary procuremen-op-open procuremen-btn-audit-issue"' + areaAudit + ' href="procuremen/auditissue" data-row-index="' + index + '" title=""><i class="fa fa-check"></i> 选择供应商</a>';
|
|
|
}
|
|
|
if (procuremenCan('details')) {
|
|
|
- parts.push('<a class="btn btn-xs btn-info procuremen-op-open procuremen-btn-details"' + areaDetails + ' href="procuremen/details" data-row-index="' + index + '" title="详情"><i class="fa fa-file-text-o"></i> 详情</a>');
|
|
|
+ detail = '<a class="btn btn-xs btn-info procuremen-op-open procuremen-btn-details"' + areaDetails + ' href="procuremen/details" data-row-index="' + index + '" title="详情"><i class="fa fa-file-text-o"></i> 详情</a>';
|
|
|
}
|
|
|
} else if (tab === 'confirm') {
|
|
|
- if (procuremenCan('outward_detail')) {
|
|
|
- parts.push('<a class="btn btn-xs btn-success procuremen-op-open procuremen-btn-outward"' + areaConfirmOutward + ' href="procuremen/outward_detail?wff_tab=confirm" data-row-index="' + index + '" title="审批"><i class="fa fa-gavel"></i> 审批</a>');
|
|
|
+ var stC = row && row.order_status_text != null ? String(row.order_status_text).trim() : '';
|
|
|
+ if (stC === '待审批') {
|
|
|
+ stC = '待审核';
|
|
|
+ }
|
|
|
+ if (stC === '待审核' && procuremenCan('outward_detail')) {
|
|
|
+ primary = '<a class="btn btn-xs btn-success procuremen-op-open procuremen-btn-outward"' + areaConfirmOutward + ' href="procuremen/outward_detail?wff_tab=confirm" data-row-index="' + index + '" title="审批"><i class="fa fa-gavel"></i> 审批</a>';
|
|
|
}
|
|
|
if (procuremenCan('details')) {
|
|
|
- parts.push('<a class="btn btn-xs btn-info procuremen-op-open procuremen-btn-details"' + areaDetails + ' href="procuremen/details" data-row-index="' + index + '" title="详情"><i class="fa fa-file-text-o"></i> 详情</a>');
|
|
|
+ detail = '<a class="btn btn-xs btn-info procuremen-op-open procuremen-btn-details"' + areaDetails + ' href="procuremen/details" data-row-index="' + index + '" title="详情"><i class="fa fa-file-text-o"></i> 详情</a>';
|
|
|
}
|
|
|
}
|
|
|
- return '<span class="procuremen-op-btns">' + parts.join('') + '</span>';
|
|
|
+ if (!primary && !detail) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ // 双槽位:左侧主操作(无则占位),右侧详情固定竖线对齐;整体居中
|
|
|
+ return '<span class="procuremen-op-btns">'
|
|
|
+ + '<span class="procuremen-op-slot procuremen-op-slot-primary">' + (primary || '<span class="procuremen-op-slot-empty" aria-hidden="true"></span>') + '</span>'
|
|
|
+ + '<span class="procuremen-op-slot procuremen-op-slot-detail">' + detail + '</span>'
|
|
|
+ + '</span>';
|
|
|
},
|
|
|
events: {}
|
|
|
}
|
|
|
@@ -1864,6 +1959,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$fixedRight.find('colgroup').remove();
|
|
|
|
|
|
var opW = 168;
|
|
|
+ var opMin = Controller.wffTab === 'audit' ? 160 : 156;
|
|
|
var $opCell = $bt.find('.fixed-table-body table thead th[data-field="operate"]').first();
|
|
|
if (!$opCell.length) {
|
|
|
$opCell = $headerTable.find('th[data-field="operate"]').first();
|
|
|
@@ -1871,7 +1967,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
if ($opCell.length) {
|
|
|
var measured = $opCell.outerWidth();
|
|
|
if (measured > 0) {
|
|
|
- opW = Math.max(Math.round(measured), 156);
|
|
|
+ opW = Math.max(Math.round(measured), opMin);
|
|
|
}
|
|
|
}
|
|
|
$fixedRight.css({
|
|
|
@@ -1935,7 +2031,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
if (res && res.filterOptions) {
|
|
|
procuremenMergeFilterOptions(res.filterOptions);
|
|
|
}
|
|
|
- if (res && $.isArray(res.sidebarYms) && res.sidebarYms.length && Controller.wffTab === 'pick') {
|
|
|
+ if (res && $.isArray(res.sidebarYms) && res.sidebarYms.length && (Controller.wffTab === 'pick' || Controller.wffTab === 'audit' || Controller.wffTab === 'confirm')) {
|
|
|
procuremenRenderSidebarFromYms(res.sidebarYms);
|
|
|
var pickYm = (res.activeYm || '').toString();
|
|
|
if (!/^\d{4}-\d{2}$/.test(pickYm) || res.sidebarYms.indexOf(pickYm) < 0) {
|
|
|
@@ -1969,8 +2065,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$('.procuremen-ym-item').removeClass('active');
|
|
|
$('.procuremen-ym-item[data-ym="' + Controller.currYm + '"]').addClass('active');
|
|
|
}
|
|
|
- }
|
|
|
- if (res && res.activeYm && (Controller.wffTab === 'audit' || Controller.wffTab === 'confirm')) {
|
|
|
+ } else if (res && res.activeYm && (Controller.wffTab === 'audit' || Controller.wffTab === 'confirm')) {
|
|
|
procuremenApplyActiveYm(res.activeYm);
|
|
|
}
|
|
|
if (res && typeof res === 'object' && res.msg && (res.total === 0 || !res.rows || !res.rows.length)) {
|
|
|
@@ -1992,9 +2087,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
op = {};
|
|
|
}
|
|
|
if (!Controller.colFilters) {
|
|
|
- Controller.colFilters = {CCLBMMC: '', CGYMC: '', czlyq: '', bid_open_status_text: ''};
|
|
|
+ Controller.colFilters = {CCLBMMC: '', CGYMC: '', czlyq: '', order_status_text: '', bid_open_status_text: ''};
|
|
|
}
|
|
|
- ['CCLBMMC', 'CGYMC', 'czlyq', 'bid_open_status_text'].forEach(function (k) {
|
|
|
+ ['CCLBMMC', 'CGYMC', 'czlyq', 'order_status_text', 'bid_open_status_text'].forEach(function (k) {
|
|
|
var v = Controller.colFilters[k];
|
|
|
delete filter[k];
|
|
|
delete op[k];
|
|
|
@@ -2016,8 +2111,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
});
|
|
|
|
|
|
Table.api.bindevent(table);
|
|
|
- // 避免顶栏切回本页时 addtabs 再点一次刷新(进页会连刷两次)
|
|
|
- $layout.find('.btn-refresh').attr('data-force-refresh', 'false');
|
|
|
+ // 首屏 bootstrapTable 已拉数:短暂禁止 addtabs 再触发刷新,避免进页连刷两次。
|
|
|
+ // 稍后恢复,保证左侧菜单再次点击同一页时能刷新表格。
|
|
|
+ var $refreshBtns = $layout.find('.btn-refresh')
|
|
|
+ .add('#procuremen-toolbar-host .btn-refresh')
|
|
|
+ .add(table.closest('.bootstrap-table').find('.btn-refresh'));
|
|
|
+ $refreshBtns.attr('data-force-refresh', 'false');
|
|
|
+ var enableMenuRefresh = function () {
|
|
|
+ $refreshBtns = $layout.find('.btn-refresh')
|
|
|
+ .add('#procuremen-toolbar-host .btn-refresh')
|
|
|
+ .add(table.closest('.bootstrap-table').find('.btn-refresh'));
|
|
|
+ $refreshBtns.removeAttr('data-force-refresh');
|
|
|
+ };
|
|
|
+ table.one('load-success.bs.table load-error.bs.table', function () {
|
|
|
+ setTimeout(enableMenuRefresh, 800);
|
|
|
+ });
|
|
|
+ setTimeout(enableMenuRefresh, 2500);
|
|
|
// 本页不需要「跨页选择模式」提示
|
|
|
table.closest('.bootstrap-table').find('.btn-selected-tips').remove();
|
|
|
$('#procuremen-toolbar-host .btn-selected-tips, #toolbar .btn-selected-tips').remove();
|
|
|
@@ -2237,20 +2346,17 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
Toastr.warning('请先勾选至少 1 条工序');
|
|
|
return;
|
|
|
}
|
|
|
- var ccydh0 = String(selRows[0].CCYDH || '').trim();
|
|
|
- if (!ccydh0) {
|
|
|
+ var missingCcydh = false;
|
|
|
+ $.each(selRows, function (i, r) {
|
|
|
+ if (!String(r.CCYDH || '').trim()) {
|
|
|
+ missingCcydh = true;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (missingCcydh) {
|
|
|
Toastr.warning('所选行缺少订单号,无法下发');
|
|
|
return;
|
|
|
}
|
|
|
- if (selRows.length > 1) {
|
|
|
- var j;
|
|
|
- for (j = 1; j < selRows.length; j++) {
|
|
|
- if (String(selRows[j].CCYDH || '').trim() !== ccydh0) {
|
|
|
- Toastr.warning('合并下发须为同一订单号(当前混有:' + ccydh0 + ' 与其它订单)');
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
var pk0 = table.bootstrapTable('getOptions').pk || 'ID';
|
|
|
var ids = [];
|
|
|
$.each(selRows, function (idx, r) {
|
|
|
@@ -2309,7 +2415,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
return;
|
|
|
}
|
|
|
var abandonMsg = procuremenBuildConfirmMsg(
|
|
|
- '退回初选并重新下发以下 <strong>' + idList.length + '</strong> 个订单:',
|
|
|
+ '退回供应商初选并重新下发以下 <strong>' + idList.length + '</strong> 个订单:',
|
|
|
procuremenBuildConfirmRowsTable(selAb)
|
|
|
);
|
|
|
Layer.confirm(abandonMsg, $.extend({}, procuremenConfirmLayerBase, {
|
|
|
@@ -2746,8 +2852,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
if (button && button.layerArea && button.layerArea.length) {
|
|
|
layerOpts.area = button.layerArea;
|
|
|
}
|
|
|
- // 审批弹窗必须大屏展示(忽略 data-area / 默认 800px)
|
|
|
- layerOpts.area = ['98%', '92%'];
|
|
|
+ // 审批弹窗全屏
|
|
|
+ layerOpts.area = ['100%', '100%'];
|
|
|
var winName = $a.data('window') || 'self';
|
|
|
var win = window[winName] || window;
|
|
|
if (!win.Backend || !win.Backend.api) {
|
|
|
@@ -2755,7 +2861,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
return;
|
|
|
}
|
|
|
var openLayerOpts = {
|
|
|
- area: ['98%', '92%']
|
|
|
+ area: ['100%', '100%']
|
|
|
};
|
|
|
if (typeof layerOpts.callback === 'function') {
|
|
|
openLayerOpts.callback = layerOpts.callback;
|
|
|
@@ -2877,6 +2983,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
},
|
|
|
|
|
|
pick: function () {
|
|
|
@@ -3121,7 +3228,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
{field: 'CDW', title: '单位', operate: 'LIKE', width: 70, align: 'center', halign: 'center', valign: 'middle', class: 'procuremen-rfq-num-col'},
|
|
|
// 订法暂不展示
|
|
|
// {field: 'CDF', title: '订法', operate: 'LIKE', width: 80, align: 'center', halign: 'center', valign: 'middle', class: 'procuremen-rfq-num-col'},
|
|
|
- {field: 'MBZ', title: '备注', operate: 'LIKE', width: 140, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
|
+ {field: 'MBZ', title: '招标备注', operate: 'LIKE', width: 140, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
|
{field: 'cywyxm', title: '需求发起人', operate: 'LIKE', width: 90, align: 'center', halign: 'center'},
|
|
|
{
|
|
|
field: 'createtime',
|
|
|
@@ -3476,7 +3583,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
+ '<th class="text-center" style="width:56px;">单位</th>'
|
|
|
+ '<th class="text-center" style="width:72px;">本次数量</th>'
|
|
|
+ '<th class="text-center" style="width:72px;">最高限价</th>'
|
|
|
- + '<th style="width:100px;">备注</th>'
|
|
|
+ + '<th style="width:100px;">招标备注</th>'
|
|
|
+ '</tr></thead><tbody><tr>'
|
|
|
+ '<td class="text-center">' + rfqEscHtml(ccydh) + '</td>'
|
|
|
+ '<td>' + rfqEscHtml(cyjmc) + '</td>'
|
|
|
@@ -3748,7 +3855,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
+ '<th class="text-center" style="width:56px;">单位</th>'
|
|
|
+ '<th class="text-center" style="width:72px;">本次数量</th>'
|
|
|
+ '<th class="text-center" style="width:72px;">最高限价</th>'
|
|
|
- + '<th style="width:100px;">备注</th>'
|
|
|
+ + '<th style="width:100px;">招标备注</th>'
|
|
|
+ '</tr></thead><tbody><tr>'
|
|
|
+ '<td class="text-center">' + rfqEscHtml(ccydh) + '</td>'
|
|
|
+ '<td>' + rfqEscHtml(cyjmc) + '</td>'
|
|
|
@@ -4478,7 +4585,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
function procuremenReviewCollectSelected() {
|
|
|
var selected = [];
|
|
|
var seen = {};
|
|
|
- $('#review-company-tbody .review-company-cb:checked').each(function () {
|
|
|
+ $('#review-company-tbody .review-company-cb:not(:disabled):checked').each(function () {
|
|
|
var c = $(this).data('company');
|
|
|
if (!c || typeof c !== 'object') {
|
|
|
return;
|
|
|
@@ -4566,6 +4673,16 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
var mergePayload = ($('#c-merge-rows-json').val() || '').trim();
|
|
|
if (!mergePayload) {
|
|
|
mergePayload = JSON.stringify([cons]);
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ var mergeListForSubmit = JSON.parse(mergePayload);
|
|
|
+ if ($.isArray(mergeListForSubmit) && mergeListForSubmit.length) {
|
|
|
+ mergeListForSubmit = syncProcuremenReviewMergeMbzFromUi(mergeListForSubmit);
|
|
|
+ mergePayload = JSON.stringify(mergeListForSubmit);
|
|
|
+ $('#c-merge-rows-json').val(mergePayload);
|
|
|
+ }
|
|
|
+ } catch (ignoreMergeMbz) {
|
|
|
+ }
|
|
|
}
|
|
|
var $submitBtn = $('#btn-review-submit');
|
|
|
if ($submitBtn.prop('disabled')) {
|
|
|
@@ -4758,11 +4875,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ var isPickModeUi = procuremenReviewIsPickMode();
|
|
|
$.each(list, function (idx, r) {
|
|
|
var qty = procuremenReviewQtyDisp(r);
|
|
|
var price = procuremenReviewPriceDisp(r);
|
|
|
var ccydh = String(r.CCYDH != null ? r.CCYDH : '').trim();
|
|
|
var cyjmc = String(r.CYJMC != null ? r.CYJMC : '').trim();
|
|
|
+ var mbz = r.MBZ != null && r.MBZ !== '' ? String(r.MBZ) : '';
|
|
|
var $tr = $('<tr/>');
|
|
|
if (mergeSameOrder && idx === 0) {
|
|
|
$tr.append(
|
|
|
@@ -4775,27 +4894,53 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$('<td class="review-merge-col-name"/>').text(cyjmc)
|
|
|
);
|
|
|
}
|
|
|
+ var $remarkCell = $('<td class="review-merge-col-remark"/>').text(mbz);
|
|
|
$tr.append(
|
|
|
$('<td/>').text(r.CGYMC || ''),
|
|
|
$('<td class="text-center"/>').text(r.CDW != null && r.CDW !== '' ? r.CDW : ''),
|
|
|
$('<td class="text-center"/>').text(qty),
|
|
|
$('<td class="text-center"/>').text(price),
|
|
|
$('<td class="text-center"/>').text(r.CDF || ''),
|
|
|
- $('<td class="review-merge-col-remark"/>').text(r.MBZ != null && r.MBZ !== '' ? String(r.MBZ) : '')
|
|
|
+ $remarkCell
|
|
|
);
|
|
|
$tb.append($tr);
|
|
|
});
|
|
|
- var isPickModeUi = procuremenReviewIsPickMode();
|
|
|
if (isPickModeUi && list.length > 1) {
|
|
|
+ var orderSet = {};
|
|
|
+ $.each(list, function (i, rr) {
|
|
|
+ var od = String(rr.CCYDH || '').trim();
|
|
|
+ if (od) {
|
|
|
+ orderSet[od] = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ var orderCnt = 0;
|
|
|
+ $.each(orderSet, function () { orderCnt++; });
|
|
|
+ var tipExtra = orderCnt > 1
|
|
|
+ ? ('本批含 <strong>' + orderCnt + ' 个订单</strong>、<strong>' + list.length + ' 道工序</strong>')
|
|
|
+ : ('本单含 <strong>' + list.length + ' 道工序</strong>');
|
|
|
$('.procuremen-review-submit-tip').html(
|
|
|
'<i class="fa fa-exclamation-triangle"></i> '
|
|
|
- + '<strong>合并单:</strong>确认后将向所选供应商<strong>发送短信与邮件</strong>;'
|
|
|
- + '本单含 <strong>' + list.length + ' 道工序</strong>,请核对后再确认。'
|
|
|
+ + '<strong>合并下发:</strong>确认后将向所选供应商<strong>发送短信与邮件</strong>;'
|
|
|
+ + tipExtra + ',请核对后再确认。'
|
|
|
);
|
|
|
}
|
|
|
$('#c-merge-rows-json').val(JSON.stringify(list));
|
|
|
}
|
|
|
|
|
|
+ function syncProcuremenReviewMergeMbzFromUi(list) {
|
|
|
+ if (!$.isArray(list) || !list.length) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ $('#review-merge-tbody tr').each(function (idx) {
|
|
|
+ var $inp = $(this).find('.review-merge-mbz').first();
|
|
|
+ if (!$inp.length || !list[idx]) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ list[idx].MBZ = String($inp.val() || '').trim();
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
applyProcuremenMergeReviewUi(mergeRows.length ? mergeRows : (row ? [row] : []));
|
|
|
|
|
|
var isPickMode = procuremenReviewIsPickMode();
|
|
|
@@ -4930,26 +5075,17 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
var $tbody = $('#review-company-tbody').empty();
|
|
|
if (!list.length) {
|
|
|
$tbody.append($('<tr/>').append($('<td colspan="6" class="review-company-empty"/>').text('暂无符合条件的单位')));
|
|
|
- var $cbs0 = $('#review-company-tbody .review-company-cb');
|
|
|
- var $master0 = $('#review-check-all');
|
|
|
- if (!$cbs0.length) {
|
|
|
- $master0.prop('checked', false).prop('indeterminate', false);
|
|
|
- } else {
|
|
|
- var n0 = $cbs0.filter(':checked').length;
|
|
|
- $master0.prop('checked', n0 === $cbs0.length);
|
|
|
- $master0.prop('indeterminate', n0 > 0 && n0 < $cbs0.length);
|
|
|
- }
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
return;
|
|
|
}
|
|
|
$.each(list, function (i, c) {
|
|
|
var $cb = $('<input type="checkbox" class="review-company-cb"/>');
|
|
|
- $cb.data('company', c);
|
|
|
- var k = procuremenReviewCompanyKey(c);
|
|
|
- if (k && reviewSelectedMap[k]) {
|
|
|
- $cb.prop('checked', true);
|
|
|
- }
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap);
|
|
|
var $tr = $('<tr/>');
|
|
|
+ if (!procuremenReviewCompanySelectable(c)) {
|
|
|
+ $tr.addClass('is-no-contact').attr('title', '缺少邮箱或手机号,不可选择');
|
|
|
+ }
|
|
|
$tr.append($('<td class="review-td-cb"/>').append($cb));
|
|
|
$tr.append($('<td/>').text(c.name || c.company_name || ''));
|
|
|
$tr.append($('<td/>').text(c.username || ''));
|
|
|
@@ -4958,11 +5094,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$tr.append($('<td/>').text((c.company_type != null && String(c.company_type).trim() !== '') ? String(c.company_type).trim() : (c.category || '')));
|
|
|
$tbody.append($tr);
|
|
|
});
|
|
|
- var $cbs = $('#review-company-tbody .review-company-cb');
|
|
|
- var $master = $('#review-check-all');
|
|
|
- var n = $cbs.filter(':checked').length;
|
|
|
- $master.prop('checked', n === $cbs.length);
|
|
|
- $master.prop('indeterminate', n > 0 && n < $cbs.length);
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
});
|
|
|
|
|
|
@@ -5029,12 +5161,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
} else {
|
|
|
$.each(list, function (i, c) {
|
|
|
var $cb = $('<input type="checkbox" class="review-company-cb"/>');
|
|
|
- $cb.data('company', c);
|
|
|
- var k2 = procuremenReviewCompanyKey(c);
|
|
|
- if (k2 && reviewSelectedMap[k2]) {
|
|
|
- $cb.prop('checked', true);
|
|
|
- }
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap);
|
|
|
var $tr = $('<tr/>');
|
|
|
+ if (!procuremenReviewCompanySelectable(c)) {
|
|
|
+ $tr.addClass('is-no-contact').attr('title', '缺少邮箱或手机号,不可选择');
|
|
|
+ }
|
|
|
$tr.append($('<td class="review-td-cb"/>').append($cb));
|
|
|
$tr.append($('<td/>').text(c.name || c.company_name || ''));
|
|
|
$tr.append($('<td/>').text(c.username || ''));
|
|
|
@@ -5044,32 +5175,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$tbody2.append($tr);
|
|
|
});
|
|
|
}
|
|
|
- var $cbsS = $('#review-company-tbody .review-company-cb');
|
|
|
- var $masterS = $('#review-check-all');
|
|
|
- if (!$cbsS.length) {
|
|
|
- $masterS.prop('checked', false).prop('indeterminate', false);
|
|
|
- } else {
|
|
|
- var nS = $cbsS.filter(':checked').length;
|
|
|
- $masterS.prop('checked', nS === $cbsS.length);
|
|
|
- $masterS.prop('indeterminate', nS > 0 && nS < $cbsS.length);
|
|
|
- }
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
}, 160);
|
|
|
});
|
|
|
|
|
|
$('#review-company-tbody').off('change.reviewCb').on('change.reviewCb', '.review-company-cb', function () {
|
|
|
+ if ($(this).prop('disabled')) {
|
|
|
+ $(this).prop('checked', false);
|
|
|
+ return;
|
|
|
+ }
|
|
|
var c = $(this).data('company');
|
|
|
var k = procuremenReviewCompanyKey(c);
|
|
|
- var $cbsC = $('#review-company-tbody .review-company-cb');
|
|
|
- var $masterC = $('#review-check-all');
|
|
|
if (!k) {
|
|
|
- if (!$cbsC.length) {
|
|
|
- $masterC.prop('checked', false).prop('indeterminate', false);
|
|
|
- } else {
|
|
|
- var nC = $cbsC.filter(':checked').length;
|
|
|
- $masterC.prop('checked', nC === $cbsC.length);
|
|
|
- $masterC.prop('indeterminate', nC > 0 && nC < $cbsC.length);
|
|
|
- }
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
return;
|
|
|
}
|
|
|
@@ -5078,15 +5197,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
} else {
|
|
|
delete reviewSelectedMap[k];
|
|
|
}
|
|
|
- var n2 = $cbsC.filter(':checked').length;
|
|
|
- $masterC.prop('checked', n2 === $cbsC.length);
|
|
|
- $masterC.prop('indeterminate', n2 > 0 && n2 < $cbsC.length);
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
});
|
|
|
|
|
|
$('#review-check-all').off('change.reviewAll').on('change.reviewAll', function () {
|
|
|
var on = $(this).prop('checked');
|
|
|
- $('#review-company-tbody .review-company-cb').each(function () {
|
|
|
+ $('#review-company-tbody .review-company-cb:not(:disabled)').each(function () {
|
|
|
$(this).prop('checked', on).trigger('change');
|
|
|
});
|
|
|
});
|
|
|
@@ -5212,12 +5329,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
} else {
|
|
|
$.each(list, function (i, c) {
|
|
|
var $cb = $('<input type="checkbox" class="review-company-cb"/>');
|
|
|
- $cb.data('company', c);
|
|
|
- var k3 = procuremenReviewCompanyKey(c);
|
|
|
- if (k3 && reviewSelectedMap[k3]) {
|
|
|
- $cb.prop('checked', true);
|
|
|
- }
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap);
|
|
|
var $tr = $('<tr/>');
|
|
|
+ if (!procuremenReviewCompanySelectable(c)) {
|
|
|
+ $tr.addClass('is-no-contact').attr('title', '缺少邮箱或手机号,不可选择');
|
|
|
+ }
|
|
|
$tr.append($('<td class="review-td-cb"/>').append($cb));
|
|
|
$tr.append($('<td/>').text(c.name || c.company_name || ''));
|
|
|
$tr.append($('<td/>').text(c.username || ''));
|
|
|
@@ -5227,15 +5343,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$tbody.append($tr);
|
|
|
});
|
|
|
}
|
|
|
- var $cbsF = $('#review-company-tbody .review-company-cb');
|
|
|
- var $masterF = $('#review-check-all');
|
|
|
- if (!$cbsF.length) {
|
|
|
- $masterF.prop('checked', false).prop('indeterminate', false);
|
|
|
- } else {
|
|
|
- var nF = $cbsF.filter(':checked').length;
|
|
|
- $masterF.prop('checked', nF === $cbsF.length);
|
|
|
- $masterF.prop('indeterminate', nF > 0 && nF < $cbsF.length);
|
|
|
- }
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
procuremenPinSupplierPickerLayout();
|
|
|
return false;
|
|
|
@@ -5402,18 +5510,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$.each(list, function (i, c) {
|
|
|
var existing = isExistingCompany(c);
|
|
|
var $cb = $('<input type="checkbox" class="review-company-cb"/>');
|
|
|
- $cb.data('company', c);
|
|
|
- if (existing) {
|
|
|
- $cb.prop('disabled', true).prop('checked', true);
|
|
|
- } else {
|
|
|
- var k = procuremenReviewCompanyKey(c);
|
|
|
- if (k && reviewSelectedMap[k]) {
|
|
|
- $cb.prop('checked', true);
|
|
|
- }
|
|
|
- }
|
|
|
var $tr = $('<tr/>');
|
|
|
if (existing) {
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap, {existing: true});
|
|
|
$tr.addClass('is-existing').attr('title', '该供应商已在本单中');
|
|
|
+ } else if (!procuremenReviewCompanySelectable(c)) {
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap);
|
|
|
+ $tr.addClass('is-no-contact').attr('title', '缺少邮箱或手机号,不可选择');
|
|
|
+ } else {
|
|
|
+ procuremenReviewBindCompanyCb($cb, c, reviewSelectedMap);
|
|
|
}
|
|
|
$tr.append($('<td class="review-td-cb"/>').append($cb));
|
|
|
$tr.append($('<td/>').text((c.name || c.company_name || '') + (existing ? '(已下发)' : '')));
|
|
|
@@ -5423,15 +5528,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
$tr.append($('<td/>').text((c.company_type != null && String(c.company_type).trim() !== '') ? String(c.company_type).trim() : (c.category || '')));
|
|
|
$tbody.append($tr);
|
|
|
});
|
|
|
- var $cbs = $('#review-company-tbody .review-company-cb:not(:disabled)');
|
|
|
- var $master = $('#review-check-all');
|
|
|
- if (!$cbs.length) {
|
|
|
- $master.prop('checked', false).prop('indeterminate', false);
|
|
|
- } else {
|
|
|
- var n = $cbs.filter(':checked').length;
|
|
|
- $master.prop('checked', n === $cbs.length);
|
|
|
- $master.prop('indeterminate', n > 0 && n < $cbs.length);
|
|
|
- }
|
|
|
+ procuremenReviewSyncCompanyMaster();
|
|
|
syncReviewSelectedSummary();
|
|
|
}
|
|
|
|
|
|
@@ -6469,7 +6566,17 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
return row.to_email_masked || v || '';
|
|
|
}}, colCenter),
|
|
|
$.extend({field: 'company_name', title: '供应商', operate: 'LIKE'}, colCenter),
|
|
|
- $.extend({field: 'scene', title: '场景', operate: '=', searchList: {'pick_issue': '初选下发', 'audit_resend': '确认页重发'}, formatter: function (v, row) {
|
|
|
+ $.extend({field: 'scene', title: '场景', operate: '=', searchList: {
|
|
|
+ '初选下发': '初选下发',
|
|
|
+ '确认页重发': '确认页重发',
|
|
|
+ '确认页追加供应商': '确认页追加供应商',
|
|
|
+ '确认结果通知': '确认结果通知',
|
|
|
+ '确认已通过通知': '确认已通过通知',
|
|
|
+ '确认未通过通知': '确认未通过通知',
|
|
|
+ '询价通知业务员': '询价通知业务员',
|
|
|
+ '供应商询价通知': '供应商询价通知',
|
|
|
+ '交货情况通知生产部': '交货情况通知生产部'
|
|
|
+ }, formatter: function (v, row) {
|
|
|
return row.scene_text || v || '';
|
|
|
}}, colCenter),
|
|
|
$.extend({field: 'mail_subject', title: '邮件主题', operate: 'LIKE', class: 'autocontent', formatter: Table.api.formatter.content}, colCenter),
|