123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- _this.pageinit = function () {
- var that = _this
- newPageInit(that)
- }
- // 在页面初始化加载之后
- mbos('page').bind('afterLoad', function () {
- _this.path = mbos.pageInfo.path// 轻应用的路径编码 例如 trip880
- _this.detailPageCode = mbos.pageInfo.name.replace('Add', 'View') // 详情页面的编码 (个别页面可特殊处理直接写入) 例如 tripView.editui
- _this.operateState = mbos.getRequestParams().operateState // 'ADDNEW' 'EDIT' 'VIEW'
- // 初始化审批流
- // mbos('nextperson1').checkParticipantPerson({
- // "callback": function () { }
- // });
- // 单据说明
- mbos('description').bind('click', function () {
- handleClickDesc()
- })
- })
- mbos('entries').bind('afterRendered', function (e) {
- // mbos('oldBill', e.index).value(localeResource.view) // 查看原单 点击查看按钮
- multiLangField(e.index)// 兼容多语言字段回显的问题
- viewOldBill(e.index) // 给查看添加点击事件
- // 初始化审批流
- _this.getNextPerson();
- getOldEntry(e)
- })
- // 初始化审批流
- _this.getNextPerson = function(){
- var entries = setModel('getNextPerson');
- var data = JSON.parse(JSON.stringify(mbos('entity').value()));
- data.entries = JSON.parse(JSON.stringify(entries));
- var date = mbos.getRequestParams().date || new Date()
- var today = moment(date).format('YYYY-MM-DD')
- var beginTime = today + ' 00:00';
- var endTime = today + ' 23:59';
- mbos.eas.invokeScript({
- name: "getHROrgUnit",
- param: [{'beginTime': beginTime, 'endTime':endTime}],
- success: function (res) {
- console.log(res)
- if(res.hrOrgUnitId){
- data.hrOrgUnit = res.hrOrgUnitId
- }
- mbos('nextperson1').checkParticipantPerson({
- 'editdata': data,
- "callback": function () { }
- });
- }
- })
- }
- function viewOldBill(index){
- $("#oldBill_" + index).bind('click', function () {
- if (mbos('entries.tripBill', index).value() && mbos('entries.tripBill', index).value().id) {
- openPage('trip880', 'tripView.editui', {
- billID: mbos('entries.tripBill', index).value().id, // 出差单id
- entryId: mbos('entries_tripEntryBill', index).value().id, // 聚焦在对应的分录明细上
- billType: 'tripBill' // 出差单的name,取自天天勤。作用是过滤分录,不显示非自己的单据明细
- })
- }
- })
- }
- function getOldEntry(e) {
- var index = e.index
- if (mbos.getRequestParams().oldEntry) {
- var oldEntry = JSON.parse(mbos.getRequestParams().oldEntry)
-
- if (oldEntry) {
- console.log('oldEntry', oldEntry)
- mbos('entries_tripEntryBill', index).value({id:oldEntry.id}) // 分录id
- mbos('entries_isAllDay', index).value(oldEntry.entries.isAllDay == '是' ? 'true':'false') // TODO 是中文值
- setTimeout(function(){
- mbos('entries_realTripDays', index).attr('accuracy', _this.decimal) // 设置小数点后位数
- mbos('entries_realTripDays', index).value(oldEntry.entries.tripDays)
- }, 500)
- mbos('entries_realStartTime', index).value(oldEntry.entries.tripStartTime)
- mbos('entries_realEndTime', index).value(oldEntry.entries.tripEndTime)
- // 回显弹性算时长
- mbos.http.ajax({ // 是否弹性算时长
- 'url': `/mbos/data/getObjectValue?id=${mbos('entries_tripEntryBill', index).value().id}&fields=isElasticCalLen`,
- success: function (data) {
- mbos('entries_isElasticCalLen', index).value(data.isElasticCalLen) // 原出差单单据id
- mbos('entries_isElasticCalLen', index).show() // 原出差单单据id
- }
- });
- }
- }
- if (oldEntry && oldEntry.bill) {
- mbos('entries.tripBill', index).value(oldEntry.bill) // 原出差单单据id
- } else { // 通过分录id获取原出差单据的id
- mbos.http.ajax({
- 'url': `/mbos/data/getObjectValue?id=${mbos('entries_tripEntryBill', index).value().id}&fields=bill.id`,
- success: function (data) {
- mbos('entries_tripBill', index).value(data.bill) // 原出差单单据id
- }
- });
- }
- }
- // 保存按钮
- _this.save = function (event) {
- setModel()
- baseInterface('save', toView) // 调用保存接口
- }
- // 提交按钮
- _this.submit = function (event) {
- // 确认提交 弹框
- mbos.ui.showConfirm({
- title: localeResource.confirmSubmit,
- iconclass: "kdfont kdfont-zhuangtai_jingshi the_info",
- callback: function (data) {
- if (data == 0) {
- setModel()
- baseInterface('submit', toView) // 调用提交接口
- }
- }
- });
- }
- // 点击“保存、提交” 跳转页面
- function toView(res) {
- // 提交接口 返回的res.data为数组,取第一条数据
- if (res.data.keyValue || (res.data.length > 0 && res.data[0].keyValue)) {
- // 操作成功 提示弹框
- mbos.ui.showInfo({
- title: localeResource.succeed,
- iconclass: "kdfont kdfont-zhuangtai_wancheng the_success",
- callback: function () {
- openPage(_this.path, _this.detailPageCode, { billID: res.data.keyValue || res.data[0].keyValue })
- }
- });
- } else {
- mbos.msgBox.showMessage('billID获取失败!');
- }
- }
- // 给隐藏的model赋值
- function setModel(method) {
- if (typeof _this.operateState != "undefined" && (_this.operateState === "ADDNEW" || _this.operateState === "EDIT")) {
- var entries = mbos('entity').data.entries
- entries.map(function (entry) {
- entry.person = easContext.person
- entry.position = easContext.position
- entry.adminOrgUnit = easContext.position.adminOrgUnit
- getEntries(entry,method) // 各单据处理分录数据
- })
- return entries;
- }
- }
- // 各单据处理分录数据的函数
- function getEntries(entry,method) {
- // entry.tripBill = _this.tripBillId // 原出差单id
- if(method == 'getNextPerson'){
- // entry.position = easContext.position.id;
- // entry.adminOrgUnit = easContext.position.adminOrgUnit.id;
- if(entry.realStartTime){
- entry.realStartTime = moment(entry.realStartTime).format('YYYY-MM-DD HH:mm:ss');
- }
- if(entry.realEndTime){
- entry.realEndTime = moment(entry.realEndTime).format('YYYY-MM-DD HH:mm:ss');
- }
- }else{
- // delete entry.position;
- // delete entry.adminOrgUnit;
- }
- }
- // 计算单据时长
- var getTimeLength = _.debounce(function (index) {
- var callback = function (res) {
- mbos('entries_realTripDays', index).attr('accuracy', _this.decimal) // 设置小数点后位数
- mbos('entries_realTripDays', index).value(Number(res.data))
- }
- setModel(index)
- var entry = mbos('entity').data.entries[index]
- if (entry.realEndTime && entry.realStartTime) {
- baseInterface('getBillLength', callback, index)
- }
- }, 200)
- // 根据时间判断 是否展示弹性算时长字段
- function isElastic(index) {
- var callback = function (res) {
- if (res.data) {
- mbos('entries_isElasticCalLen', index).show()
- } else {
- mbos('entries_isElasticCalLen', index).hide()
- }
- }
- setModel(index)
- if (mbos('entries_realStartTime',0).value() && mbos('entries_realEndTime',0).value()) {
- baseInterface('showIsElasticCalCtrl', callback, index)
- }
- }
- // 获取整天的开始、结束时间
- var getStartEndTime = _.debounce(function (event) {
- if (String(mbos('entries_isAllDay', event.index).value()) == 'true') { // 整天出差
- var callback = function (res) {
- mbos('entries_realStartTime', event.index).value(moment(res.data.beginTime).format('YYYY-MM-DD HH:mm'))
- mbos('entries_realEndTime', event.index).value(moment(res.data.endTime).format('YYYY-MM-DD HH:mm'))
- }
- baseInterface('getAllDayBeginAndEndTime', callback, event.index)
- }
- }, 0)
- // 如果是整天出差 则使用date;否则使用datetime,同时清空时长
- function recalcTime(event) {
- mbos('entries_realTripDays', event.index).value('')
- if (event.new_value) {
- var entry = mbos('entity').data.entries[event.index]
- if (entry.realStartTime || entry.realEndTime) {
- getStartEndTime(event)
- }
- }
- getTimeLength(event.index)
- }
- // 计算时长
- _this.calTime1 = function (event) {
- // getTimeLength(event.index)
- isElastic(event.index)
- recalcTime(event)
- }
- _this.calTime2 = function (event) {
- // getTimeLength(event.index)
- isElastic(event.index)
- recalcTime(event)
- }
- // 弹性时段算时长
- _this.calTime3 = function (event) {
- recalcTime(event)
- }
- // 切换是否整天
- _this.isAllDayChange = function (event) {
- recalcTime(event)
- }
- // 时长更改时 做校验
- _this.lengthChange = function(event){
- var value = event.new_value
- // 判断是否小于0
- if (!isNaN(parseFloat(value)) && value < 0) {
- mbos.msgBox.showError(localeResource.lengthValid);
- setTimeout(()=>{
- mbos('entries_realTripDays',event.index).value(0)
- })
- return
- }
- }
-
|