zhangyanpeng
2024-08-18 235f89899039b7df17c5502fcdf3d34956772c43
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<!doctype html>
<html>
    <head>
        <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
        <title>数量单选择弹窗</title>
        
        <script type="text/javascript">
            var pageVue = null;
            function loadJsCss(callback) {
                var jscss_urls = [];
                window.top.initJsCss(document, jscss_urls, callback);
            };
            
            function initVue() {
                new ListVue({
                    el: "#vbody",
                    data: {
                        dataname: "fee_qty", //"md_hospital",
                        title: "数量单选择弹窗",
                        pageAttr: {
                            heightType: "popuppage"
                        },
                        default_tableFields:  [
                                // { field: "state_name", name: "状态", isshow: "T", width: "80",input_type_filter:"select",filter_field:"state_code",inputtype:"capsuletag",options_pattern:"{^草稿^:^info^,^生效^:^success^,^审批中^:^warning^}"},
                                // { field: "state_code", name: "状态", isshow: "F", width: "80" },
                                { field: "id", name: "确认单号", isshow: "T", width: "120", isfilter: true },
                                { field: "sale_year", name: "销售年份", isshow: "T", align: "center", width: "80" },
                                { field: "sale_month", name: "销售月份", isshow: "T" ,width: "80"},
                                { field: "date", name: "销售日期", isshow: "T",width: "100",type:"date",formatter:"formatter_date"},
                                { field: "commit_year", name: "统计年份", isshow: "T",width: "80" },
                                { field: "commit_month", name: "统计月份", isshow: "T", width: "80" },
                                { field: "type", name: "类型", isshow: "T",},
                                { field: "sale_code", name: "服务联系人编码", isshow: "T", align: "center",width: "110"  },
                                { field: "sale_name", name: "服务联系人", isshow: "T", align: "center", width: "100" },
                                { field: "customer_code", name: "客户编码", isshow: "T", align: "center",width: "100"  },
                                { field: "customer_name", name: "客户名称", isshow: "T", align: "left",width: "150" , isfilter: true },
                                { field: "product", name: "产品名称", isshow: "T", align: "left" ,width: "200"  },
                                { field: "spec", name: "规格", isshow: "T", align: "center",width: "150"   },
                                { field: "agreement_code", name: "协议编号", isshow: "T",width: "100", align: "center",  isfilter: true },
                                { field: "invoince_price", name: "开票价", isshow: "T", align: "right",formatter:"formatter_money",width:'120'},
                                { field: "settlement_price", name: "结算低价", isshow: "T", align: "right",formatter:"formatter_money",width:'120'  },
                                { field: "tax", name: "税点", isshow: "T", align: "center",  },
                                { field: "policy", name: "政策", isshow: "T", align: "center",  },
                                { field: "flow_qty", name: "流向数量", isshow: "T", align: "center",  },
                                { field: "comfirm_qyt", name: "确认数量", isshow: "T", align: "center",  },
                                { field: "return_qty", name: "应返金额", isshow: "T", align: "right",formatter:"formatter_money"  },
                                { field: "other_deduction", name: "其余扣款", isshow: "T", align: "right",formatter:"formatter_money"  },
                                { field: "returned_qty", name: "实返金额", isshow: "T", align: "right",formatter:"formatter_money" },
                                { field: "deduction_remark", name: "扣款备注", isshow: "T", align: "left",width:'200'  },
                                { field: "order_code", name: "订单号", isshow: "T", align: "center",  isfilter: true,width:'120' },
                                { field: "order_total", name: "订单金额", isshow: "T", align: "right",formatter:"formatter_money",width:'120'  },
                                { field: "order_amt", name: "订单单价", isshow: "T", align: "right",formatter:"formatter_money",width:'120'  },
                                { field: "order_state", name: "订单状态", isshow: "T", align: "center",width:'80'  },
                                { field: "platform_information", name: "平台信息", isshow: "T", align: "center",  },
                                { field: "applicant", name: "申请人", isshow: "T", align: "center",  },
                                { field: "product_group", name: "产品组", isshow: "T", align: "center",  },
                                { field: "apply_date", name: "申请时间", isshow: "T", align: "center",formatter:"formatter_date",width: "100"  },
                                { field: "pre_merger_customer", name: "合并前客户", isshow: "T", align: "center", width: "100" },
                                { field: "last_arrpove_time", name: "最后审批时间", isshow: "T", align: "center",formatter:"formatter_date",width: "100"  },
                                { field: "agency_fee_state", name: "代理费用单状态", isshow: "T", align: "center",width: "110"  },
                                { field: "freeze", name: "冻结状态", isshow: "T", align: "center",  },
                                { field: "ferrze_remark", name: "冻结原因", isshow: "T", align: "left",  },
                            ],
                        filterAttr: {
                            columnnumber: 3,
                            labelwidth: "100px",
                            labelposition: "right",//"left",//"right",
                            size: "medium",
                            border: "0px solid #c6c6c600"
                        },
                        filterfieldClick: {},
                        tablefieldClick: {},
                        formfieldClick: {},
                        
                        selectedrows: [],
                    },
                    created() {
                        this.popupParames = clone(Root.popupParames);
                        this.title = this.popupParames.title || this.popupParames.text
                        if (this.popupParames.filter) {
                            this.filterTxt = this.popupParames.filter
                        }
                        
                        if (this.popupParames.dataname) {
                            this.dataname = this.popupParames.dataname;
                        }
                        
                        if (this.popupParames.sceneCode) {
                            if (this.popupParames.sceneCode == "add") {//新增
                                this.isedit = true;
                            }
                        }
                    },
                    
                    mounted() {
                        //获取数据
                        this.initData();
                        this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
                            hideLoading();
                        });
                    },
                    
                    methods:{
                        //关闭弹窗
                        closeDialog() {
                            this.docloseDialog(true);
                        },
                        
                        //关闭前调回调
                        saveAfter() {
                            var me = this;
                            var selectedrows = this.$refs.table1.getShoppingcart();
                            
                            if(this.popupParames.callback) {
                                let obj = {
                                    list: clone(selectedrows)
                                    // row: clone(this.selectedrow)
                                }
                                this.popupParames.callback(obj, function() {
                                    me.docloseDialog();
                                });
                            }
                            else {
                                me.docloseDialog();
                            }
                        },
                        
                        initData() {
                            var me = this;
                            this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的
                                if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
                                    // var metas = clone(result.meta[me.dataname].fields);
                                    var filterFields_ = [];
                                    var tableFields_ = [];
                                    
                                    me.default_tableFields.map(f=>{
                                        f.isshow = "T";
                                        
                                        if (f.isfilter) {
                                            filterFields_.push(clone(f));
                                        }
                                        else {
                                            var filter_f = clone(f);
                                            filter_f.isshow = "F";
                                        }
                                        
                                        tableFields_.push(clone(f));
                                    })
                                    if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
                                        me.filterFields = clone(filterFields_);
                                        me.tableFields = clone(me.default_tableFields);
                                        
                                        //字段数组转字段obj,目的为了筛选时获取字段属性
                                        me.fieldsToFieldsObj();
                                        
                                        //设置字段事件
                                        me.tableFieldClick();
                                    }
                                    
                                }
                                
                                if (callback) {
                                    callback();
                                }
                            });
                        },
                        
                        tableFieldClick() {
                            var me = this;
                            //筛选字段事件设置
                            this.filterfieldClick = {
                            };
                            //表格字段事件设置
                            this.tablefieldClick = {
                            };
                        
                            //表单字段事件设置
                            this.formfieldClick = {
                            };
                        },
                        
                        selectionChange(obj){
                            var me = this;
                            me.selectedrows = obj;
                        },
                        saveShoppingcart(list) {
                            var me = this;
                            me.selectedrows = list;
                        },
                        
                        onRowDblClick() {
                            if (this.isedit) {
                                this.saveAfter();
                            }
                        },
                        
                    }
                });
            };
            
            loadJsCss(function () {
                initVue();
            });
        </script>
        <style>
            /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
            [v-cloak] {
                display: none !important;
            }
        </style>
        
    </head>
    
    <body style="margin: 0px;">
        <div v-cloak id="vbody">
            <div id="page_root">
                <div ref="popup_body" style="padding: 0 20px;">
                    <div class="h_dialog__body">
                        <h-table
                            v-if="isRefresh && tableFields.length"
                            ref="table1"
                            :table-fields="tableFields" 
                            :table-data="tableData" 
                            :pagesize="pagesize"
                            :pagenum="pagenum"
                            :total="total"
                            :table-height="tableHeight"
                            :table-field-click="tablefieldClick"
                            :is-highlight-row="isedit"
                            :is-show-index="false"
                            :filtersobj="filterObj"
                            :isdraggableorder="false"
                            
                            v-on:get-data="getData"
                            v-on:row-click="rowClick"
                            
                            :select-table-data="selectedrows"
                            :is-selection="true"
                            :isshow-shoppingcart="true"
                            v-on:selection-change="selectionChange"
                            v-on:save-shoppingcart="saveShoppingcart"
                        >
                        </h-table>
                        <!-- v-on:row-dblclick="rowDblclick" -->
                    </div>
                    
                    <!-- 底部工具栏 -->
                    <div class="el-dialog__footer">
                        <el-button size="small" type="default" @click="closeDialog">取 消</el-button>
                        <el-button size="small" v-if="isedit" type="primary" @click="saveAfter">确 定</el-button>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
            <div class="spinner">
              <div class="cube1"></div>
              <div class="cube2"></div>
            </div>
        </div>
        
    </body>
</html>