田源
2024-04-07 2ac55ce0edf4870a29691b56bfad59f4830a11a2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/**
 * 业务类型的删除
 * @author weidy
 * @date 2021-3-19
 */
layui.define(['layer','element','BaseAction'],function(exports){
    var webUtil = $webUtil;
    var Class = function() {
        this.MODELNAME = "BaseDeleteAction";
        this.moduleKey = "BaseDeleteAction";
        this.id = "BaseDeleteAction";
        this.backPath = configData.compatibility?path:configData.objectServicePath;
        this.doAction = function (options) {
            if(!options || !options.dataStore ){
                $webUtil.showErrorMsg("按钮的传递信息不正确,请开发人员检查");
                return false;
            }
            var that = this;
            webUtil.copyConfig(that, that.moduleKey);
            var finallyCallback = options.callback;
            var params = $webUtil.paramLow(options.paramVOS);
            options.paramVOS = params;
            if(options.dataStore.length<1){
                $webUtil.showErrorMsg("请选择需要删除的数据");
                return false;
            }
            if(!params.multi && options.dataStore.length > 1){
                $webUtil.showErrorMsg("仅能选择一条数据来操作");
                return false;
            }
            var baseAction = layui['BaseAction'];
            baseAction.callPreEvent(options,that,function (options) {
                $webUtil.showConfirmMsg($webUtil.replaceFreeMarker(params.confirmmsg,options.dataStore,options.sourceData) || ('是否删除' + (options.dataStore.length==1?"这条":"这些") + '数据' + (params.cascade?",如果有下级数据会级联删除":"")),function (r) {
                    if(r){
                        that.doDelete(options,function (){
                            baseAction.callPostEvent(options,that,finallyCallback);
                        });
                    }
                });
            });
        };
        this.doDelete = function (options,callback) {
            var that = this;
            var submitData = {
                checkLinkedFlag:options.paramVOS.checklinkedflag,
                cascade:options.paramVOS.cascade,
                adminCascade:options.paramVOS.admincascade
            }
            if(options.paramVOS.checkonback){
                submitData['checkNotDelete']=options.paramVOS.checknotdelete;
                submitData['checkNotDeleteMsg']=options.paramVOS.checknotdeletemsg;
            }else if(options.paramVOS.checknotdelete){
                var notdelete = options.paramVOS.checknotdelete.split('&');
                var checknotdelete=false;
                var msgStore={};
                layui.each(notdelete, function (i, item) {
                    for (var j=0;j<options.dataStore.lenght;j++){
                        if (options.dataStore[j][item.split('=')[0]] == item.split('=')[1]) {
                            checknotdelete=true;
                            msgStore=options.dataStore[j]
                            return false;
                        }
                    }
                })
                if (checknotdelete) {
                    $webUtil.showErrorMsg($webUtil.replaceFreeMarker(options.paramVOS.checknotdeletemsg,msgStore,{}) || '当前数据不允许删除');
                    return false;
                }
            }
            submitData.dataList = options.dataStore;
            $webUtil.manualAjax(options.paramVOS.method||'delete',options.paramVOS.url || 'uiDataController/deleteData',JSON.stringify(submitData),function(result){
                if(result.success){
                    $webUtil.showMsgFromResult(result,options.paramVOS.successMsg||'删除成功');
                    if(callback){
                        callback();
                    }
                }else{
                    $webUtil.showErrorMsg(result.msg);
                }
            },function (error,xhr){
                $webUtil.showErrorMsg("执行删除出错,可能是服务没有启动,您可以稍后再试");
            },options.paramVOS.backpath||that.backPath);
        };
        this.destory = function () {
            var that = this;
        };
    };
    var cs = new Class();
    exports(cs.MODELNAME,cs);
});