|
@@ -0,0 +1,379 @@
|
|
|
+var app = getApp()
|
|
|
+var that;
|
|
|
+var animation;
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ users: [],
|
|
|
+ items: {
|
|
|
+ targets: [],//工作执行者列表,以逗号分割的字符串或直接传入数组
|
|
|
+ pt_id: 3,//积分种类id
|
|
|
+ task_name: '',//任务名
|
|
|
+ task_remark: '',//任务详细描述
|
|
|
+ base_point: '',//任务参考积分
|
|
|
+ expire_time: '',//截至时间 格式:2020-02-02 12:00
|
|
|
+ package_id: '',//绩效任务包id 绩效任务包发布工作时必须大于0,其余工作发布为0
|
|
|
+ weight: '',//绩效权重 绩效任务包发布工作时必须大于0,其余工作发布为0
|
|
|
+ file_list: [],//附件地址列表
|
|
|
+ reviewer_id: '',//审批者id
|
|
|
+ revieweName: '',
|
|
|
+ timeout_deduction_point: '',//逾期扣分/月
|
|
|
+ unqualified: '',//评分标准 不合格-分数
|
|
|
+ qualified: '',//
|
|
|
+ satisfied: '',//
|
|
|
+ super_satisfied: '',//
|
|
|
+ cate_id: '',// 共组分类id
|
|
|
+ },
|
|
|
+ reviewerObj: [],//默认审批人
|
|
|
+ objectArray: [
|
|
|
+ {
|
|
|
+ id: 0,
|
|
|
+ name: '不重复',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ name: '每天重复',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ name: '每周重复',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ name: '每月重复',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ arrIndex: 0
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ that = this;
|
|
|
+ dd.setNavigationBar({ title: "指派任务" });
|
|
|
+ that.setData({
|
|
|
+ types: app.globalData.types
|
|
|
+ })
|
|
|
+ },
|
|
|
+ bindObjPickerChange(e) {
|
|
|
+ console.log('picker发送选择改变,携带值为', e.detail.value);
|
|
|
+ this.setData({
|
|
|
+ arrIndex: e.detail.value,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ openType(e) {
|
|
|
+ var id = e.target.dataset.id;
|
|
|
+ that.setData({
|
|
|
+ [`items.pt_id`]: id
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onShow() {
|
|
|
+ animation = dd.createAnimation({
|
|
|
+ duration: 200,
|
|
|
+ timeFunction: "linear",
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //积分输入
|
|
|
+ bindKeyInput(e) {
|
|
|
+ var point = `items.base_point`;
|
|
|
+ this.setData({
|
|
|
+ [point]: e.detail.value,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //积分输入
|
|
|
+ bindKeyInput2(e) {
|
|
|
+ var point = `items.timeout_deduction_point`;
|
|
|
+ this.setData({
|
|
|
+ [point]: e.detail.value,
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //显示图片
|
|
|
+ showImg(e) {
|
|
|
+ var index = e.target.dataset.index;
|
|
|
+ var item = e.target.dataset.item
|
|
|
+ dd.previewImage({
|
|
|
+ current: index,
|
|
|
+ urls: item
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //关闭规则
|
|
|
+ onClose() {
|
|
|
+ animation.translateY(1200).step();
|
|
|
+ that.setData({
|
|
|
+ animationInfo: animation.export()
|
|
|
+ });
|
|
|
+ that.setData({ isShowType: '' });
|
|
|
+ },
|
|
|
+ //选择弹窗
|
|
|
+ openSelect(e) {
|
|
|
+ var num = e.target.dataset.num;
|
|
|
+
|
|
|
+ if (e.target.dataset.item) {
|
|
|
+ if (e.target.dataset.item.id) {
|
|
|
+ that.setData({ reviewerObj: [e.target.dataset.item] });
|
|
|
+ } else {
|
|
|
+ that.setData({ reviewerObj: [] });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ isShowType: num,
|
|
|
+ });
|
|
|
+ animation.translateY(0).step();
|
|
|
+ that.setData({
|
|
|
+ animationInfo: animation.export()
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //删除图片
|
|
|
+ deteleImg(e) {
|
|
|
+ var index = e.target.dataset.index;//获取itemS集合中对应的files
|
|
|
+ var files = that.data.items.file_list;//获取itemS集合中对应的files
|
|
|
+ var files_box = `items.file_list`;//
|
|
|
+ app.globalData.arrRemoveObj(files, files[index]);
|
|
|
+ that.setData({
|
|
|
+ [files_box]: files
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ //图片选择
|
|
|
+ openImg(e) {
|
|
|
+ var files = that.data.items.file_list;
|
|
|
+ if (files.length >= 3) {
|
|
|
+ app.globalData.showToast("只能上传三张");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ dd.chooseImage({
|
|
|
+ count: 1,
|
|
|
+ success: (res) => {
|
|
|
+ that.postImg(res.filePaths[0]);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ postImg(img_url) {
|
|
|
+ var files_box = `items.file_list`;
|
|
|
+ var files = that.data.items.file_list;
|
|
|
+ dd.httpRequest({
|
|
|
+ url: app.globalData.imgHttpUrl,
|
|
|
+ method: 'POST',
|
|
|
+ data: {
|
|
|
+ md5: that.random_string(32),
|
|
|
+ 'name': app.globalData.day
|
|
|
+ },
|
|
|
+ success: function (res) {
|
|
|
+ if (app.globalData.userData.site_id) {
|
|
|
+ var key = 'intesys/dd/' + app.globalData.userData.site_id + "/" + app.globalData.day + '/' + that.random_string(32) + '.png';
|
|
|
+ } else {
|
|
|
+ var key = 'intesys/dd/' + app.globalData.day + '/' + that.random_string(32) + '.png';
|
|
|
+ }
|
|
|
+ var obj = res.data.data;
|
|
|
+ dd.uploadFile({
|
|
|
+ url: app.globalData.ALIOSS_URL,
|
|
|
+ fileType: 'image',
|
|
|
+ fileName: 'file',
|
|
|
+ filePath: img_url,
|
|
|
+ formData: {
|
|
|
+ key: key,
|
|
|
+ policy: obj.policy,
|
|
|
+ OSSAccessKeyId: obj.accessid,
|
|
|
+ success_action_status: 200,
|
|
|
+ signature: obj.signature
|
|
|
+ },
|
|
|
+ success: (res) => {
|
|
|
+ if (res.statusCode == 200) {
|
|
|
+ if (files.length > 0) {
|
|
|
+ files.push('http://cdn.intesys.g107.com/' + key)
|
|
|
+ } else {
|
|
|
+ files = ['http://cdn.intesys.g107.com/' + key];
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ [files_box]: files
|
|
|
+ });
|
|
|
+ console.log(that.data.items);
|
|
|
+ app.globalData.showToast("已上传");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.log(err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: function (res) {
|
|
|
+ app.globalData.showToast("上传失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ random_string(len) {
|
|
|
+ len = len || 32
|
|
|
+ var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
|
|
|
+ var maxPos = chars.length
|
|
|
+ var pwd = ''
|
|
|
+ for (let i = 0; i < len; i++) {
|
|
|
+ pwd += chars.charAt(Math.floor(Math.random() * maxPos))
|
|
|
+ }
|
|
|
+ return pwd
|
|
|
+ },
|
|
|
+
|
|
|
+ //备注输入
|
|
|
+ bindTextAreaBlur: function (e) {
|
|
|
+ var index = e.target.dataset.index;
|
|
|
+ var remark = `items[${index}].remark`
|
|
|
+ this.setData({
|
|
|
+ [remark]: e.detail.value,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ showToast(text) {
|
|
|
+ app.globalData.showToast(text);
|
|
|
+ },
|
|
|
+ formSubmit() {
|
|
|
+ var items = this.data.items;
|
|
|
+ var userData = this.data.users;
|
|
|
+ var arr = [];
|
|
|
+ var isTg = true;
|
|
|
+ var pt_id = app.getTypesItem(this.data.isGzType).id
|
|
|
+ if (userData.length == 0) {
|
|
|
+ this.showToast('请选择奖扣对象')
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (var i = 0; i < items.length; i++) {
|
|
|
+ var obj = {};
|
|
|
+ var item = items[i];
|
|
|
+ var num = item.checked ? item.point : item.point2
|
|
|
+ var point;
|
|
|
+ if (item.checked) {
|
|
|
+ if (item.isArrindex != true) {
|
|
|
+ point = 0 - num;
|
|
|
+ } else {
|
|
|
+ point = num;
|
|
|
+ }
|
|
|
+ if (point < item.selectRule.min_point || point > item.selectRule.max_point) {
|
|
|
+ this.showToast(`第${i + 1}条,积分分值超出可输入范围`);
|
|
|
+ isTg = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (item.isArrindex2 != true) {
|
|
|
+ point = 0 - num;
|
|
|
+ } else {
|
|
|
+ point = num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.checked) {
|
|
|
+ if (!item.rule_id) {
|
|
|
+ this.showToast(`第${i + 1}条请选择规则`);
|
|
|
+ isTg = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!item.rule_id2) {
|
|
|
+ this.showToast(`第${i + 1}条请选择分类`);
|
|
|
+ isTg = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (point == 0 || !point) {
|
|
|
+ this.showToast(`第${i + 1}条积分分值不能为0或者为空`);
|
|
|
+ isTg = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!item.remark) {
|
|
|
+ this.showToast(`第${i + 1}条事件内容不能为空`);
|
|
|
+ isTg = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ obj.rule_id = item.checked ? item.rule_id : item.rule_id2;
|
|
|
+ obj.item_id = item.checked ? item.item_id : 0;
|
|
|
+ obj.point = point;
|
|
|
+ obj.remark = item.remark;
|
|
|
+ obj.event_time = item.event_time;
|
|
|
+ obj.pt_id = pt_id;
|
|
|
+ obj.reviewer_id = item.reviewer_id ? item.reviewer_id : 0;
|
|
|
+ obj.files = item.files;
|
|
|
+ arr.push(obj);
|
|
|
+ }
|
|
|
+ var userIds = []
|
|
|
+ userData.map(item => {
|
|
|
+ userIds.push(item.id)
|
|
|
+ })
|
|
|
+ if (isTg) {
|
|
|
+ var data = {
|
|
|
+ members: JSON.stringify(userIds),
|
|
|
+ items: JSON.stringify(arr)
|
|
|
+ }
|
|
|
+ this.setData({ disabled: true });
|
|
|
+ var url = this.data.type == 'B' ? 'api/integral/point/entry' : 'api/integral/review/a/entry'
|
|
|
+ app.$post(url, data).then((res) => {
|
|
|
+ var is = true, msg;
|
|
|
+
|
|
|
+ if (this.data.type == 'B') {
|
|
|
+ res.data.data.list.forEach(item => {
|
|
|
+ if (item.status != 1) {
|
|
|
+ is = false;
|
|
|
+ msg = item.msg;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ res.data.data.forEach(item => {
|
|
|
+ if (item.status != 1) {
|
|
|
+ is = false;
|
|
|
+ msg = item.rule_item;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is) {
|
|
|
+ this.showToast('提交成功');
|
|
|
+ setTimeout(() => {
|
|
|
+ this.setData({ disabled: false });
|
|
|
+ dd.navigateBack({ delta: 1 })
|
|
|
+ }, 1000);
|
|
|
+ } else {
|
|
|
+ this.setData({ disabled: false });
|
|
|
+ this.showToast(msg);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ this.setData({ disabled: false });
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ switchChange(e) {
|
|
|
+ var index = e.target.dataset.index;
|
|
|
+ var item = `items[${index}].checked`;
|
|
|
+ that.setData({
|
|
|
+ [item]: e.detail.value
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //选择时间
|
|
|
+ openDate(e) {
|
|
|
+ var item = `items.expire_time`
|
|
|
+ dd.datePicker({
|
|
|
+ format: 'yyyy-MM-dd HH:mm',
|
|
|
+ currentDate: that.data.items.expire_time,
|
|
|
+ success: (res) => {
|
|
|
+ that.setData({
|
|
|
+ [item]: res.date
|
|
|
+ })
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //选择执行人
|
|
|
+ onSelectUser(item) {
|
|
|
+ this.setData({ superior_list: [] });
|
|
|
+ if (item.length > 0) {
|
|
|
+ that.setData({
|
|
|
+ users: item.length > 0 ? item : [],
|
|
|
+ superior_list: app.globalData.userData.employee_detail.superior_list
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ //选择审批人
|
|
|
+ onSelectUser2(item) {
|
|
|
+ var elm = item.length > 0 ? item[0] : { id: '', name: '' };
|
|
|
+ var reviewer_id = `items.reviewer_id`
|
|
|
+ var revieweName = `items.revieweName`
|
|
|
+ that.setData({
|
|
|
+ [reviewer_id]: elm.id,
|
|
|
+ [revieweName]: elm.name,
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+});
|
|
|
+
|