Your Name преди 10 месеца
родител
ревизия
a250dceda5

+ 10
- 1
application/admin/conf/auth_rule.php Целия файл

@@ -57,7 +57,16 @@ return [
57 57
         'name'  => '允许操作',
58 58
         'is_modules'    => 1,
59 59
         'sort_order'    => 100,
60
-        'auths' => 'Other@*,ZcPosition@*',
60
+        'auths' => 'Other@*,ZcPosition@*,ZczsPosition@*',
61
+    ],
62
+    [
63
+        'id' => 49, // 复制广告管理  职称问答流程
64
+        'menu_id' => 1007,
65
+        'menu_id2' => 0,
66
+        'name'  => '允许操作',
67
+        'is_modules'    => 1,
68
+        'sort_order'    => 100,
69
+        'auths' => 'Other@*,ZcwdPosition@*',
61 70
     ],
62 71
     [
63 72
         'id' => 4,

+ 15
- 0
application/admin/conf/menu.php Целия файл

@@ -385,6 +385,21 @@ return  array(
385 385
                 'is_subshowmenu'=>0,
386 386
                 'child' => array(),
387 387
             ),
388
+            '1007' => array(
389
+                'id'=>1007,
390
+                'parent_id'=>1000,
391
+                'name' => '职称问答',
392
+                'controller'=>'ZcwdPosition',
393
+                'action'=>'index',
394
+                'url'=>'',
395
+                'target'=>'workspace',
396
+                'icon'=>'iconfont e-guanggao',
397
+                'grade'=>1,
398
+                'is_menu'=>1,
399
+                'is_modules'=>1,
400
+                'is_subshowmenu'=>0,
401
+                'child' => array(),
402
+            ),
388 403
         ),
389 404
     ),
390 405
         

+ 116
- 9
application/admin/controller/ZcPosition.php Целия файл

@@ -44,6 +44,20 @@ class ZcPosition extends Base
44 44
             }
45 45
         }
46 46
 
47
+        //增加地区条件
48
+        if(!empty($get['map']) && $get['map'] == '-1'){
49
+
50
+        }else{
51
+            if(!empty($get['map']) && (int)$get['map'] > 0) {
52
+                //查找
53
+                $zc_ids = Db::name('zc_map')->where('map_id','=',(int)$get['map'])->column('zc_id');
54
+                $condition['a.id'] = array('IN', $zc_ids);
55
+            }else{
56
+                $condition['a.type'] = array('eq', 0);
57
+            }
58
+        }
59
+
60
+
47 61
         // 多语言
48 62
         //$condition['a.lang'] = array('eq', $this->admin_lang);
49 63
 
@@ -117,13 +131,24 @@ class ZcPosition extends Base
117 131
                 $v['ad_count'] = count($v['ad']);
118 132
             }
119 133
 
120
-            //获取地区
121
-            $one = Db::name('citysite')
122
-                ->where(['id'=>$v['type']])
123
-                ->find();
124
-
125
-            $v['type_name'] = $one['name'];
126
-
134
+            if((int)$v['type'] == 0){
135
+                $v['type_name'] = '全国';
136
+            }else{
137
+                //获取中间表
138
+                $map_ids = Db::name('zc_map')
139
+                    ->where('is_del','=',0)
140
+                    ->where('zc_id', $v['id'])
141
+                    ->column('map_id');
142
+
143
+                //获取地区
144
+                $oneList = Db::name('citysite')
145
+                    ->where('id','in',$map_ids)
146
+                    ->select();
147
+
148
+                foreach ($oneList as $k2 => $v2) {
149
+                    $v['type_name'] .= $v2['name'].',';
150
+                }
151
+            }
127 152
             $list[$k] = $v;
128 153
         }
129 154
 
@@ -186,6 +211,8 @@ class ZcPosition extends Base
186 211
             $post = input('post.');
187 212
 
188 213
 
214
+            //var_dump($post);
215
+            //die;
189 216
             /*
190 217
              * array(11) { ["title"]=> string(12) "建筑职称" ["type"]=> string(1) "1" ["img_id"]=> array(1) { [0]=> string(0) "" } ["img_litpic"]=> array(1) { [0]=> string(67) "https://oss.zc10000.com/uploads/allimg/20240528/1-24052R01005Z4.png" } ["img_title"]=> array(1) { [0]=> string(0) "" } ["img_links"]=> array(1) { [0]=> string(0) "" } ["img_intro"]=> array(1) { [0]=> string(0) "" } ["img_target"]=> array(1) { [0]=> string(1) "0" } ["video_litpic"]=> string(0) "" ["html_intro"]=> string(0) "" ["intro"]=> string(0) "" }
191 218
              */
@@ -200,11 +227,16 @@ class ZcPosition extends Base
200 227
                 $this->error('该职称名称已存在,请检查', url('ZcPosition/index'));
201 228
             }
202 229
 
230
+            if((int)$post['type'] === 1) {
231
+                if(empty($post['map']) || !is_array($post['map'])) {
232
+                    $this->error('请选择至少一个地区', url('ZcPosition/index'));
233
+                }
234
+            }
203 235
 
204 236
             // 添加广告位置表信息
205 237
             $data = array(
206 238
                 'title'       => trim($post['title']),
207
-                'type'        => $post['type'], //职称地区
239
+                'type'        => $post['type'], //职称地区  全国或者地区
208 240
                 'intro'       => $post['intro'], //备注
209 241
                 'admin_id'    => session('admin_id'),
210 242
                 'lang'        => $this->admin_lang,
@@ -216,6 +248,25 @@ class ZcPosition extends Base
216 248
 
217 249
             if (!empty($insertID)) {
218 250
 
251
+                //处理多选
252
+                if((int)$post['type'] === 1){
253
+                    //$post['map'] 已验证 是非空数组
254
+                    //插入中间表
255
+                    $map_data = [];
256
+                    foreach ($post['map'] as $k => $v) {
257
+                        $map_data[] = [
258
+                            'map_id' => $v,
259
+                            'zc_id' => $insertID,
260
+                            'add_time' => time(),
261
+                            'is_del' => 0,
262
+                            'del_time' => 0
263
+                        ];
264
+                    }
265
+                    Db::name('zc_map')->insertAll($map_data);
266
+                }else{
267
+                    //属于全国 不需要添加区域
268
+                }
269
+
219 270
                 // 同步广告位置ID到多语言的模板变量里,添加多语言广告位
220 271
                 //$this->syn_add_language_attribute($insertID);
221 272
 
@@ -321,6 +372,14 @@ class ZcPosition extends Base
321 372
                 if (Db::name('zc_position')->where($map)->count() > 0) $this->error('该职称名称已存在,请检查');
322 373
                 /* END */
323 374
 
375
+
376
+                if((int)$post['type'] === 1) {
377
+                    if(empty($post['map']) || !is_array($post['map'])) {
378
+                        $this->error('请选择至少一个地区', url('ZcPosition/index'));
379
+                    }
380
+                }
381
+
382
+
324 383
                 /* 判断广告是否切换广告类型 */
325 384
                 // $where = [
326 385
                 //     'id'   => $post['id'],
@@ -341,7 +400,7 @@ class ZcPosition extends Base
341 400
                 $data = array(
342 401
                     'id'          => $post['id'],
343 402
                     'title'       => trim($post['title']),
344
-                    'type'        => $post['type'],
403
+                    'type'        => $post['type'], //全国或者地区
345 404
                     'intro'       => $post['intro'],
346 405
                     'update_time' => getTime(),
347 406
                 );
@@ -350,6 +409,36 @@ class ZcPosition extends Base
350 409
             }
351 410
 
352 411
             if (!empty($resultID)) {
412
+
413
+
414
+                //处理多选
415
+                if((int)$post['type'] === 1){
416
+                    //$post['map'] 已验证 是非空数组
417
+                    //先删除旧数据
418
+                    Db::name('zc_map')->where('zc_id','=',$post['id'])->update([
419
+                            'is_del' => 1,
420
+                            'del_time' => time()
421
+                        ]);
422
+                    //插入中间表
423
+                    $map_data = [];
424
+                    foreach ($post['map'] as $k => $v) {
425
+                        $map_data[] = [
426
+                            'map_id' => $v,
427
+                            'zc_id' => $post['id'],
428
+                            'add_time' => time(),
429
+                            'is_del' => 0,
430
+                            'del_time' => 0
431
+                        ];
432
+                    }
433
+                    Db::name('zc_map')->insertAll($map_data);
434
+                }else{
435
+                    //属于全国 删除所有区域
436
+                    Db::name('zc_map')->where('zc_id','=',$post['id'])->update([
437
+                            'is_del' => 1,
438
+                            'del_time' => time()
439
+                        ]);
440
+                }
441
+
353 442
                 $ad_db = Db::name('zc');
354 443
                 if (!empty($post['img_litpic'])) { // 图片类型
355 444
                     // 读取组合广告位的图片及信息
@@ -489,13 +578,31 @@ class ZcPosition extends Base
489 578
         $assign_data['media_type'] = $media_type;
490 579
 
491 580
 
581
+        //查询关联区域数据
582
+        $map_list = Db::name('zc_map')->where(['zc_id'=>$field['id'],'is_del'=>0])->column('map_id');
583
+        //var_dump($map_list);die();
584
+        $this->assign('$map_list', $map_list);
585
+
586
+
492 587
         //查找区域数据
493 588
         $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
589
+
590
+
591
+        foreach ($pro_list as $k=>$v){
592
+            if(in_array($v['id'],$map_list) === true){
593
+                $pro_list[$k]['is_check'] = "checked";
594
+            }else{
595
+                $pro_list[$k]['is_check'] = '';
596
+            }
597
+        }
598
+
494 599
         //var_dump($pro_list);
495 600
         $this->assign('pro_list', $pro_list);
496 601
         $this->assign('curr_id', $field['type']);
497 602
 
498 603
 
604
+
605
+
499 606
         $this->assign($assign_data);
500 607
         return $this->fetch();
501 608
     }

+ 848
- 0
application/admin/controller/ZcwdPosition.php Целия файл

@@ -0,0 +1,848 @@
1
+<?php
2
+/**
3
+ * 易优CMS
4
+ * ============================================================================
5
+ * 版权所有 2016-2028 海南赞赞网络科技有限公司,并保留所有权利。
6
+ * 网站地址: http://www.eyoucms.com
7
+ * ----------------------------------------------------------------------------
8
+ * 如果商业用途务必到官方购买正版授权, 以免引起不必要的法律纠纷.
9
+ * ============================================================================
10
+ * Author: 小虎哥 <1105415366@qq.com>
11
+ * Date: 2018-4-3
12
+ */
13
+
14
+namespace app\admin\controller;
15
+
16
+use think\Page;
17
+use think\Db;
18
+use think\Cache;
19
+
20
+class ZcwdPosition extends Base
21
+{
22
+    private $ad_position_system_id = array(); // 系统默认位置ID,不可删除
23
+
24
+    public function _initialize() {
25
+        parent::_initialize();
26
+    }
27
+
28
+    public function index()
29
+    {
30
+        $list = array();
31
+        $get = input('get.');
32
+        $keywords = input('keywords/s');
33
+        $condition = [];
34
+        // 应用搜索条件
35
+        foreach (['keywords', 'type'] as $key) {
36
+            $get[$key] = addslashes(trim($get[$key]));
37
+            if (isset($get[$key]) && $get[$key] !== '') {
38
+                if ($key == 'keywords') {
39
+                    $condition['a.title'] = array('LIKE', "%{$get[$key]}%");
40
+                } else {
41
+                    $tmp_key = 'a.'.$key;
42
+                    $condition[$tmp_key] = array('eq', $get[$key]);
43
+                }
44
+            }
45
+        }
46
+
47
+        // 多语言
48
+        //$condition['a.lang'] = array('eq', $this->admin_lang);
49
+
50
+        $adPositionM =  Db::name('zcwd_position');
51
+        $count = $adPositionM->alias('a')->where($condition)->count();// 查询满足要求的总记录数
52
+        $Page = new Page($count, config('paginate.list_rows'));// 实例化分页类 传入总记录数和每页显示的记录数
53
+        $list = $adPositionM->alias('a')->where($condition)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->getAllWithIndex('id');
54
+
55
+        //var_dump($condition);die;
56
+
57
+        // 每组获取三张图片
58
+        $pids = get_arr_column($list, 'id');
59
+        $ad = Db::name('zcwd')
60
+            ->where(['pid' => ['IN', $pids], 'lang' => $this->admin_lang])
61
+            ->order('pid asc, id asc')
62
+            ->select();
63
+
64
+        foreach ($list as $k => $v) {
65
+
66
+            /*
67
+            if (1 == $v['type']) {
68
+                // 图片封面图片
69
+                $v['ad'] = [];
70
+                foreach ($ad as $m => $n) {
71
+                    if ($v['id'] == $n['pid']) {
72
+                        $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录
73
+                        $v['ad'][] = $n;
74
+                        unset($ad[$m]);
75
+                    } else {
76
+                        continue;
77
+                    }
78
+                }
79
+                // 若没有内容则显示默认图片
80
+                if (empty($v['ad'])) {
81
+                    $v['ad_count'] = 0;
82
+                    $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg';
83
+                } else {
84
+                    $v['ad_count'] = count($v['ad']);
85
+                }
86
+                // 广告类型
87
+                $v['type_name'] = '图片';
88
+            } else if (2 == $v['type']) {
89
+                // 多媒体封面图片
90
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_media.png';
91
+                // 广告类型
92
+                $v['type_name'] = '多媒体';
93
+            } else if (3 == $v['type']) {
94
+                // HTML代码封面图片
95
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_html.png';
96
+                // 广告类型
97
+                $v['type_name'] = 'HTML代码';
98
+            }*/
99
+
100
+
101
+            //处理图片
102
+            $v['ad'] = [];
103
+            foreach ($ad as $m => $n) {
104
+                if ($v['id'] == $n['pid']) {
105
+                    $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录
106
+                    $v['ad'][] = $n;
107
+                    unset($ad[$m]);
108
+                } else {
109
+                    continue;
110
+                }
111
+            }
112
+            // 若没有内容则显示默认图片
113
+            if (empty($v['ad'])) {
114
+                $v['ad_count'] = 0;
115
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg';
116
+            } else {
117
+                $v['ad_count'] = count($v['ad']);
118
+            }
119
+
120
+            //获取地区
121
+            $one = Db::name('citysite')
122
+                ->where(['id'=>$v['type']])
123
+                ->find();
124
+
125
+            $v['type_name'] = $one['name'];
126
+
127
+            $list[$k] = $v;
128
+        }
129
+
130
+        $show = $Page->show();// 分页显示输出
131
+        $this->assign('page',$show);// 赋值分页输出
132
+        $this->assign('list',$list);// 赋值数据集
133
+        $this->assign('pager',$Page);// 赋值分页对象
134
+
135
+        /*多语言模式下,广告位ID显示主体语言的ID和属性title名称*/
136
+        $main_adv_list = [];
137
+        if ($this->admin_lang != $this->main_lang && empty($this->globalConfig['language_split'])) {
138
+            $attr_values = get_arr_column($list, 'id');
139
+            $languageAttrRow = Db::name('language_attr')->field('attr_name,attr_value')->where([
140
+                    'attr_value'    => ['IN', $attr_values],
141
+                    'attr_group'    => 'ad_position',
142
+                    'lang'          => $this->admin_lang,
143
+                ])->getAllWithIndex('attr_value');
144
+            $ids = [];
145
+            foreach ($languageAttrRow as $key => $val) {
146
+                $tid_tmp = str_replace('adp', '', $val['attr_name']);
147
+                array_push($ids, intval($tid_tmp));
148
+            }
149
+            $main_advRow = Db::name('zcwd_position')->field("id,title,CONCAT('adp', id) AS attr_name")
150
+                ->where([
151
+                    'id'    => ['IN', $ids],
152
+                    'lang'  => $this->main_lang,
153
+                ])->getAllWithIndex('attr_name');
154
+            foreach ($list as $key => $val) {
155
+                $key_tmp = !empty($languageAttrRow[$val['id']]['attr_name']) ? $languageAttrRow[$val['id']]['attr_name'] : '';
156
+                $main_adv_list[$val['id']] = [
157
+                    'id'        => !empty($main_advRow[$key_tmp]['id']) ? $main_advRow[$key_tmp]['id'] : '',
158
+                    'title'  => !empty($main_advRow[$key_tmp]['title']) ? $main_advRow[$key_tmp]['title'] : '',
159
+                ];
160
+            }
161
+        }
162
+        $this->assign('main_adv_list', $main_adv_list);
163
+        /*end*/
164
+
165
+        //查找区域数据
166
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
167
+        //var_dump($pro_list);
168
+        $this->assign('pro_list', $pro_list);
169
+
170
+
171
+        return $this->fetch();
172
+    }
173
+    
174
+    /**
175
+     * 新增
176
+     */
177
+    public function add()
178
+    {
179
+        //防止php超时
180
+        function_exists('set_time_limit') && set_time_limit(0);
181
+
182
+        if (is_language() && empty($this->globalConfig['language_split'])) {
183
+            $this->language_access(); // 多语言功能操作权限
184
+        }
185
+
186
+        if (IS_POST) {
187
+            $post = input('post.');
188
+
189
+
190
+            /*
191
+             * array(11) { ["title"]=> string(12) "建筑职称" ["type"]=> string(1) "1" ["img_id"]=> array(1) { [0]=> string(0) "" } ["img_litpic"]=> array(1) { [0]=> string(67) "https://oss.zcwd10000.com/uploads/allimg/20240528/1-24052R01005Z4.png" } ["img_title"]=> array(1) { [0]=> string(0) "" } ["img_links"]=> array(1) { [0]=> string(0) "" } ["img_intro"]=> array(1) { [0]=> string(0) "" } ["img_target"]=> array(1) { [0]=> string(1) "0" } ["video_litpic"]=> string(0) "" ["html_intro"]=> string(0) "" ["intro"]=> string(0) "" }
192
+             */
193
+            //var_dump($post);die;
194
+
195
+
196
+            $map = array(
197
+                'title' => trim($post['title']),
198
+                'lang'  => $this->admin_lang,
199
+            );
200
+            if(Db::name('zcwd_position')->where($map)->count() > 0){
201
+                $this->error('该职称名称已存在,请检查', url('ZcwdPosition/index'));
202
+            }
203
+
204
+
205
+            // 添加广告位置表信息
206
+            $data = array(
207
+                'title'       => trim($post['title']),
208
+                'type'        => $post['type'], //职称地区
209
+                'intro'       => $post['intro'], //备注
210
+                'admin_id'    => session('admin_id'),
211
+                'lang'        => $this->admin_lang,
212
+                'add_time'    => getTime(),
213
+                'update_time' => getTime(),
214
+            );
215
+            $insertID = Db::name('zcwd_position')->insertGetId($data);
216
+
217
+
218
+            if (!empty($insertID)) {
219
+
220
+                // 同步广告位置ID到多语言的模板变量里,添加多语言广告位
221
+                //$this->syn_add_language_attribute($insertID);
222
+
223
+                // 读取组合广告位的图片及信息
224
+                $AdData = [];
225
+                if (!empty($post['img_litpic'])) { // 图片类型
226
+                    $i = 1;
227
+                    foreach ($post['img_litpic'] as $key => $value) {
228
+                        if (!empty($value)) {
229
+                            // 去掉http:
230
+                            $value = str_replace("http:", "", $value);
231
+                            // 去掉https:
232
+                            $value = str_replace("https:", "", $value);
233
+                            // 主要参数
234
+                            $AdData['litpic'] = $value;
235
+                            $AdData['pid']    = $insertID;
236
+                            $AdData['title']  = trim($post['img_title'][$key]);
237
+                            $AdData['links']  = $post['img_links'][$key];
238
+                            $AdData['intro']  = $post['img_intro'][$key];
239
+                            $target = !empty($post['img_target'][$key]) ? 1 : 0;
240
+                            $AdData['target'] = $target;
241
+                            // 其他参数
242
+                            $AdData['media_type']  = 1;
243
+                            $AdData['admin_id']    = session('admin_id');
244
+                            $AdData['lang']        = $this->admin_lang;
245
+                            $AdData['sort_order']  = $i++;
246
+                            $AdData['add_time']    = getTime();
247
+                            $AdData['update_time'] = getTime();
248
+                            // 添加到广告图表
249
+                            $ad_id = Db::name('zcwd')->add($AdData);
250
+                            // 同步多语言
251
+                            //$this->syn_add_ad_language_attribute($ad_id);
252
+                        }
253
+                    }
254
+                }
255
+
256
+                //Cache::clear('ad');
257
+                adminLog('新增职称:'.$post['title']);
258
+                $this->success("操作成功", url('ZcwdPosition/index'));
259
+            } else {
260
+                $this->error("操作失败", url('ZcwdPosition/index'));
261
+            }
262
+        }
263
+
264
+        // 上传通道
265
+        $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select();
266
+        $WeappOpen = [];
267
+        foreach ($WeappConfig as $value) {
268
+            if ('Qiniuyun' == $value['code']) {
269
+                $WeappOpen['qny_open'] = $value['status'];
270
+            } else if ('AliyunOss' == $value['code']) {
271
+                $WeappOpen['oss_open'] = $value['status'];
272
+            } else if ('Cos' == $value['code']) {
273
+                $WeappOpen['cos_open'] = $value['status'];
274
+            }
275
+        }
276
+        $this->assign('WeappOpen', $WeappOpen);
277
+
278
+        // 系统最大上传视频的大小
279
+        $upload_max_filesize = upload_max_filesize();
280
+        $this->assign('upload_max_filesize', $upload_max_filesize);
281
+
282
+        // 视频类型
283
+        $media_type = tpCache('global.media_type');
284
+        $media_type = !empty($media_type) ? $media_type : config('global.media_ext');
285
+        $media_type = str_replace(",", "|", $media_type);
286
+        $this->assign('media_type', $media_type);
287
+
288
+
289
+        //查找区域数据
290
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
291
+        //var_dump($pro_list);
292
+        $this->assign('pro_list', $pro_list);
293
+
294
+        //查找职称数据
295
+        $pos = Db::name('zc_position')->where(['is_del'=>0])->select();
296
+        //var_dump($pos);
297
+        $this->assign('pos_list', $pos);
298
+
299
+
300
+        return $this->fetch();
301
+    }
302
+
303
+    public function  getMap()
304
+    {
305
+        $id = request()->post('id',0);
306
+
307
+        //查找区域
308
+        $map_ids = Db::name('zc_map')
309
+            ->where('zc_id','=',$id)
310
+            ->where('is_del','=',0)
311
+            ->column('map_id');
312
+
313
+        //获取地区
314
+        $list = Db::name('citysite')
315
+            ->where('id','in',$map_ids)
316
+            ->select();
317
+
318
+        $type_name = '';
319
+        foreach ($list as $k2 => $v2) {
320
+            $type_name .= $v2['name'].',';
321
+        }
322
+
323
+        if(empty($type_name)){
324
+            $type_name = '全国';
325
+        }
326
+
327
+        $data = [
328
+            'code' => 0,
329
+            'msg' => '获取成功',
330
+            'data' => $type_name,
331
+        ];
332
+        return json($data);
333
+    }
334
+    
335
+    /**
336
+     * 编辑
337
+     */
338
+    public function edit()
339
+    {
340
+        if (IS_POST) {
341
+
342
+
343
+            $post = input('post.');
344
+            if (!empty($post['id'])) {
345
+
346
+
347
+                $post['id'] = intval($post['id']);
348
+                if (array_key_exists($post['id'], $this->ad_position_system_id)) {
349
+                    $this->error("不可更改系统预定义位置", url('ZcwdPosition/edit',array('id'=>$post['id'])));
350
+                }
351
+
352
+                /* 判断除自身外是否还有相同广告名称已存在 */
353
+                $map = array(
354
+                    'id'    => array('NEQ', $post['id']),
355
+                    'title' => trim($post['title']),
356
+                    //'lang'  => $this->admin_lang,
357
+                );
358
+                if (Db::name('zcwd_position')->where($map)->count() > 0) $this->error('该职称名称已存在,请检查');
359
+                /* END */
360
+
361
+                /* 判断广告是否切换广告类型 */
362
+                // $where = [
363
+                //     'id'   => $post['id'],
364
+                //     'type' => $post['type'],
365
+                //     'lang' => $this->admin_lang
366
+                // ];
367
+                // if (Db::name('zcwd_position')->where($where)->count() == 0) {
368
+                //     // 已切换广告类型,清除广告中的广告内容
369
+                //     $where = [
370
+                //         'pid'  => $post['id'],
371
+                //         'lang' => $this->admin_lang
372
+                //     ];
373
+                //     Db::name('zcwd')->where($where)->delete();
374
+                // }
375
+                /* END */
376
+
377
+                /* 修改广告主体信息 */
378
+                $data = array(
379
+                    'id'          => $post['id'],
380
+                    'title'       => trim($post['title']),
381
+                    'type'        => $post['type'],
382
+                    'intro'       => $post['intro'],
383
+                    'update_time' => getTime(),
384
+                );
385
+                $resultID = Db::name('zcwd_position')->update($data);
386
+                /* END */
387
+            }
388
+
389
+            if (!empty($resultID)) {
390
+                $ad_db = Db::name('zcwd');
391
+                if (!empty($post['img_litpic'])) { // 图片类型
392
+                    // 读取组合广告位的图片及信息
393
+                    $i = 1;
394
+                    foreach ($post['img_litpic'] as $key => $value) {
395
+                        if (!empty($value)) {
396
+                            // 去掉http:
397
+                            $value = str_replace("http:", "", $value);
398
+                            // 去掉https:
399
+                            $value = str_replace("https:", "", $value);
400
+                            // 是否新窗口打开
401
+                            $target = !empty($post['img_target'][$key]) ? 1 : 0;
402
+                            // 广告位ID,为空则表示添加
403
+                            $ad_id = $post['img_id'][$key];
404
+                            if (!empty($ad_id)) {
405
+                                // 查询更新条件
406
+                                $where = [
407
+                                    'id'   => $ad_id,
408
+                                    'lang' => $this->admin_lang,
409
+                                ];
410
+                                if ($ad_db->where($where)->count() > 0) {
411
+                                    // 主要参数
412
+                                    $AdData['litpic']      = $value;
413
+                                    $AdData['title']       = $post['img_title'][$key];
414
+                                    $AdData['links']       = $post['img_links'][$key];
415
+                                    $AdData['intro']       = $post['img_intro'][$key];
416
+                                    $AdData['target']      = $target;
417
+                                    // 其他参数
418
+                                    $AdData['sort_order']  = $i++;
419
+                                    $AdData['update_time'] = getTime();
420
+                                    // 更新,不需要同步多语言
421
+                                    $ad_db->where($where)->update($AdData);
422
+                                } else {
423
+                                    // 主要参数
424
+                                    $AdData['litpic']      = $value;
425
+                                    $AdData['pid']         = $post['id'];
426
+                                    $AdData['title']       = $post['img_title'][$key];
427
+                                    $AdData['links']       = $post['img_links'][$key];
428
+                                    $AdData['intro']       = $post['img_intro'][$key];
429
+                                    $AdData['target']      = $target;
430
+                                    // 其他参数
431
+                                    $AdData['media_type']  = 1;
432
+                                    $AdData['admin_id']    = session('admin_id');
433
+                                    $AdData['lang']        = $this->admin_lang;
434
+                                    $AdData['sort_order']  = $i++;
435
+                                    $AdData['add_time']    = getTime();
436
+                                    $AdData['update_time'] = getTime();
437
+                                    $ad_id = $ad_db->add($AdData);
438
+                                    // 同步多语言
439
+                                    //$this->syn_add_ad_language_attribute($ad_id);
440
+                                }
441
+                            } else {
442
+                                // 主要参数
443
+                                $AdData['litpic']      = $value;
444
+                                $AdData['pid']         = $post['id'];
445
+                                $AdData['title']       = $post['img_title'][$key];
446
+                                $AdData['links']       = $post['img_links'][$key];
447
+                                $AdData['intro']       = $post['img_intro'][$key];
448
+                                $AdData['target']      = $target;
449
+                                // 其他参数
450
+                                $AdData['media_type']  = 1;
451
+                                $AdData['admin_id']    = session('admin_id');
452
+                                $AdData['lang']        = $this->admin_lang;
453
+                                $AdData['sort_order']  = $i++;
454
+                                $AdData['add_time']    = getTime();
455
+                                $AdData['update_time'] = getTime();
456
+                                $ad_id = $ad_db->add($AdData);
457
+                                // 同步多语言
458
+                                //$this->syn_add_ad_language_attribute($ad_id);
459
+                            }
460
+                        }
461
+                    }
462
+
463
+                }
464
+                //Cache::clear('ad');
465
+                adminLog('编辑职称名称:'.$post['title']);
466
+                $this->success("操作成功", url('ZcwdPosition/index'));
467
+            } else {
468
+                $this->error("操作失败");
469
+            }
470
+        }
471
+
472
+        $assign_data = array();
473
+
474
+        $id = input('id/d');
475
+        $field = Db::name('zcwd_position')->field('a.*')->alias('a')->where(array('a.id'=>$id))->find();
476
+        if (empty($field)) $this->error('职称不存在,请联系管理员!');
477
+        switch ($field['type']) {
478
+            case '1':
479
+                $field['type_name'] = '图片';
480
+                break;
481
+            case '2':
482
+                $field['type_name'] = '多媒体';
483
+                break;
484
+            case '3':
485
+                $field['type_name'] = 'HTML代码';
486
+                break;
487
+        }
488
+        $assign_data['field'] = $field;
489
+
490
+        // 广告
491
+        $ad_data = Db::name('zcwd')->where(array('pid'=>$field['id']))->order('sort_order asc')->select();
492
+        foreach ($ad_data as $key => $val) {
493
+            if (1 == $val['media_type']) {
494
+                $ad_data[$key]['litpic'] = get_default_pic($val['litpic']); // 支持子目录
495
+            }
496
+        }
497
+        $assign_data['ad_data'] = $ad_data;
498
+
499
+        // 上传通道
500
+        $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select();
501
+        $WeappOpen = [];
502
+        foreach ($WeappConfig as $value) {
503
+            if ('Qiniuyun' == $value['code']) {
504
+                $WeappOpen['qny_open'] = $value['status'];
505
+            } else if ('AliyunOss' == $value['code']) {
506
+                $WeappOpen['oss_open'] = $value['status'];
507
+            } else if ('Cos' == $value['code']) {
508
+                $WeappOpen['cos_open'] = $value['status'];
509
+            }
510
+        }
511
+        $this->assign('WeappOpen', $WeappOpen);
512
+
513
+        // 系统最大上传视频的大小
514
+        $file_size  = tpCache('global.file_size');
515
+        $postsize   = @ini_get('file_uploads') ? ini_get('post_max_size') : -1;
516
+        $fileupload = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : -1;
517
+        $min_size   = strval($file_size) < strval($postsize) ? $file_size : $postsize;
518
+        $min_size   = strval($min_size) < strval($fileupload) ? $min_size : $fileupload;
519
+        $upload_max_filesize = intval($min_size) * 1024 * 1024;
520
+        $assign_data['upload_max_filesize'] = $upload_max_filesize;
521
+
522
+        // 视频类型
523
+        $media_type = tpCache('global.media_type');
524
+        $media_type = !empty($media_type) ? $media_type : config('global.media_ext');
525
+        $media_type = str_replace(",", "|", $media_type);
526
+        $assign_data['media_type'] = $media_type;
527
+
528
+
529
+        //查找区域数据
530
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
531
+        //var_dump($pro_list);
532
+        $this->assign('pro_list', $pro_list);
533
+        $this->assign('curr_id', $field['type']);
534
+
535
+
536
+        $this->assign($assign_data);
537
+        return $this->fetch();
538
+    }
539
+
540
+    /**
541
+     * 删除广告图片
542
+     */
543
+    public function del_imgupload()
544
+    {
545
+        if (is_language() && empty($this->globalConfig['language_split'])) {
546
+            $this->language_access(); // 多语言功能操作权限
547
+        }
548
+
549
+        $id_arr = input('del_id/a');
550
+        $id_arr = eyIntval($id_arr);
551
+        if(IS_POST && !empty($id_arr)){
552
+            /*多语言*/
553
+            $attr_name_arr = [];
554
+            if (empty($this->globalConfig['language_split'])) {
555
+                foreach ($id_arr as $key => $val) {
556
+                    $attr_name_arr[] = 'ad'.$val;
557
+                }
558
+                if (is_language()) {
559
+                    $new_id_arr = Db::name('language_attr')->where([
560
+                            'attr_name'  => ['IN', $attr_name_arr],
561
+                            'attr_group'    => 'ad',
562
+                        ])->column('attr_value');
563
+                    !empty($new_id_arr) && $id_arr = $new_id_arr;
564
+                }
565
+            } else {
566
+                if (get_admin_lang() == get_main_lang()) {
567
+                    foreach ($id_arr as $key => $val) {
568
+                        $attr_name_arr[] = 'ad'.$val;
569
+                    }
570
+                }
571
+            }
572
+            /*--end*/
573
+
574
+            $r = Db::name('zcwd')->where([
575
+                    'id' => ['IN', $id_arr],
576
+                ])
577
+                ->delete();
578
+            if ($r !== false) {
579
+                /*多语言*/
580
+                if (!empty($attr_name_arr)) {
581
+                    Db::name('language_attr')->where([
582
+                            'attr_name' => ['IN', $attr_name_arr],
583
+                            'attr_group'    => 'ad',
584
+                        ])->delete();
585
+
586
+                    Db::name('language_attribute')->where([
587
+                            'attr_name' => ['IN', $attr_name_arr],
588
+                            'attr_group'    => 'ad',
589
+                        ])->delete();
590
+                }
591
+                /*--end*/
592
+                Cache::clear('ad');
593
+                adminLog('删除广告-id:'.implode(',', $id_arr));
594
+            }
595
+        }
596
+    }
597
+
598
+    /**
599
+     * 删除
600
+     */
601
+    public function del()
602
+    {
603
+        if (is_language() && empty($this->globalConfig['language_split'])) {
604
+            $this->language_access(); // 多语言功能操作权限
605
+        }
606
+
607
+        $id_arr = input('del_id/a');
608
+        $id_arr = eyIntval($id_arr);
609
+        if(IS_POST && !empty($id_arr)){
610
+            foreach ($id_arr as $key => $val) {
611
+                if(array_key_exists($val, $this->ad_position_system_id)){
612
+                    $this->error('系统预定义,不能删除');
613
+                }
614
+            }
615
+
616
+            /*多语言*/
617
+            $attr_name_arr = [];
618
+            foreach ($id_arr as $key => $val) {
619
+                $attr_name_arr[] = 'adp'.$val;
620
+            }
621
+            if (is_language() && empty($this->globalConfig['language_split'])) {
622
+                $new_id_arr = Db::name('language_attr')->where([
623
+                        'attr_name' => ['IN', $attr_name_arr],
624
+                        'attr_group'    => 'ad_position',
625
+                    ])->column('attr_value');
626
+                !empty($new_id_arr) && $id_arr = $new_id_arr;
627
+            }
628
+            /*--end*/
629
+            $r = Db::name('zcwd_position')->where('id','IN',$id_arr)->delete();
630
+            if ($r !== false) {
631
+
632
+                /*多语言*/
633
+                if (!empty($attr_name_arr)) {
634
+                    if (get_admin_lang() == get_main_lang()) {
635
+                        Db::name('language_attribute')->where([
636
+                                'attr_name' => ['IN', $attr_name_arr],
637
+                                'attr_group'    => 'ad_position',
638
+                            ])->delete();
639
+                    }
640
+                    if (empty($this->globalConfig['language_split'])) {
641
+                        Db::name('language_attr')->where([
642
+                                'attr_name' => ['IN', $attr_name_arr],
643
+                                'attr_group'    => 'ad_position',
644
+                            ])->delete();
645
+                    } else {
646
+                        Db::name('language_attr')->where([
647
+                                'attr_value' => ['IN', $id_arr],
648
+                                'attr_group'    => 'ad_position',
649
+                            ])->delete();
650
+                    }
651
+                }
652
+                /*--end*/
653
+
654
+                $ad_ids = Db::name('zcwd')->where(['pid'=>['IN', $id_arr]])->column('id');
655
+                $attr_name_arr = [];
656
+                foreach ($ad_ids as $key => $val) {
657
+                    $attr_name_arr[] = "ad{$val}";
658
+                }
659
+                $r1 = Db::name('zcwd')->where('pid','IN',$id_arr)->delete();
660
+                if ($r1 !== false) {
661
+                    /*多语言*/
662
+                    if (!empty($attr_name_arr)) {
663
+                        if (get_admin_lang() == get_main_lang()) {
664
+                            Db::name('language_attribute')->where([
665
+                                    'attr_name' => ['IN', $attr_name_arr],
666
+                                    'attr_group'    => 'ad',
667
+                                ])->delete();
668
+                        }
669
+                        if (empty($this->globalConfig['language_split'])) {
670
+                            Db::name('language_attr')->where([
671
+                                    'attr_name' => ['IN', $attr_name_arr],
672
+                                    'attr_group'    => 'ad',
673
+                                ])->delete();
674
+                        } else {
675
+                            Db::name('language_attr')->where([
676
+                                    'attr_value' => ['IN', $ad_ids],
677
+                                    'attr_group'    => 'ad',
678
+                                ])->delete();
679
+                        }
680
+                    }
681
+                    /*--end*/
682
+                }
683
+
684
+                Cache::clear('ad');
685
+                adminLog('删除广告-id:'.implode(',', $id_arr));
686
+                $this->success('删除成功');
687
+            } else {
688
+                $this->error('删除失败');
689
+            }
690
+        }else{
691
+            $this->error('参数有误');
692
+        }
693
+    }
694
+
695
+    /**
696
+     * 打开预览视频
697
+     */
698
+    public function open_preview_video()
699
+    {
700
+        $post = input('post.');
701
+        $video_litpic = $post['video_litpic'];
702
+        if (!is_http_url($video_litpic)) {
703
+            $video_litpic = request()->domain() . handle_subdir_pic($video_litpic, 'media');
704
+        }
705
+        $this->success('执行成功', $video_litpic);
706
+    }
707
+
708
+    /**
709
+     * 检测广告名称是否存在重复
710
+     */
711
+    public function detection_title_repeat()
712
+    {
713
+        if (IS_AJAX_POST) {
714
+            $post = input('post.');
715
+            $where = [
716
+                'id'    => ['NEQ', $post['id']],
717
+                'title' => trim($post['title']),
718
+                'lang'  => $this->admin_lang,
719
+            ];
720
+            $count = Db::name('zcwd_position')->where($where)->count();
721
+            if (empty($count)) {
722
+                $this->success('检测通过');
723
+            } else {
724
+                $this->error('该广告名称已存在,请检查');
725
+            }
726
+        }
727
+    }
728
+
729
+    /**
730
+     * 同步新增广告位置ID到多语言的模板变量里
731
+     */
732
+    private function syn_add_language_attribute($adp_id)
733
+    {
734
+        /*单语言情况下不执行多语言代码*/
735
+        if (!is_language() || tpCache('language.language_split')) {
736
+            return true;
737
+        }
738
+        /*--end*/
739
+
740
+        $attr_group = 'ad_position';
741
+        $admin_lang = $this->admin_lang;
742
+        $main_lang = $this->main_lang;
743
+        $languageRow = Db::name('language')->field('mark')->order('id asc')->select();
744
+        if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言
745
+            $ad_position_db = Db::name('zcwd_position');
746
+            $result = $ad_position_db->find($adp_id);
747
+            $attr_name = 'adp'.$adp_id;
748
+            $r = Db::name('language_attribute')->save([
749
+                'attr_title'    => $result['title'],
750
+                'attr_name'     => $attr_name,
751
+                'attr_group'    => $attr_group,
752
+                'add_time'      => getTime(),
753
+                'update_time'   => getTime(),
754
+            ]);
755
+            if (false !== $r) {
756
+                $data = [];
757
+                foreach ($languageRow as $key => $val) {
758
+                    /*同步新广告位置到其他语言广告位置列表*/
759
+                    if ($val['mark'] != $admin_lang) {
760
+                        $addsaveData = $result;
761
+                        $addsaveData['lang']  = $val['mark'];
762
+                        $addsaveData['title'] = $val['mark'].$addsaveData['title'];
763
+                        unset($addsaveData['id']);
764
+                        $adp_id = $ad_position_db->insertGetId($addsaveData);
765
+                    }
766
+                    /*--end*/
767
+                    
768
+                    /*所有语言绑定在主语言的ID容器里*/
769
+                    $data[] = [
770
+                        'attr_name' => $attr_name,
771
+                        'attr_value'    => $adp_id,
772
+                        'lang'  => $val['mark'],
773
+                        'attr_group'    => $attr_group,
774
+                        'add_time'      => getTime(),
775
+                        'update_time'   => getTime(),
776
+                    ];
777
+                    /*--end*/
778
+                }
779
+                if (!empty($data)) {
780
+                    model('LanguageAttr')->saveAll($data);
781
+                }
782
+            }
783
+        }
784
+    }
785
+
786
+    /**
787
+     * 同步新增广告ID到多语言的模板变量里
788
+     */
789
+   private function syn_add_ad_language_attribute($ad_id)
790
+    {
791
+        /*单语言情况下不执行多语言代码*/
792
+        if (!is_language() || tpCache('language.language_split')) {
793
+            return true;
794
+        }
795
+        /*--end*/
796
+
797
+        $attr_group = 'ad';
798
+        $admin_lang = $this->admin_lang;
799
+        $main_lang = get_main_lang();
800
+        $languageRow = Db::name('language')->field('mark')->order('id asc')->select();
801
+        if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言
802
+            $ad_db = Db::name('zcwd');
803
+            $result = $ad_db->find($ad_id);
804
+            $attr_name = 'ad'.$ad_id;
805
+            $r = Db::name('language_attribute')->save([
806
+                'attr_title'    => $result['title'],
807
+                'attr_name'     => $attr_name,
808
+                'attr_group'    => $attr_group,
809
+                'add_time'      => getTime(),
810
+                'update_time'   => getTime(),
811
+            ]);
812
+            if (false !== $r) {
813
+                $data = [];
814
+                foreach ($languageRow as $key => $val) {
815
+                    /*同步新广告到其他语言广告列表*/
816
+                    if ($val['mark'] != $admin_lang) {
817
+                        $addsaveData = $result;
818
+                        $addsaveData['lang'] = $val['mark'];
819
+                        $newPid = Db::name('language_attr')->where([
820
+                                'attr_name' => 'adp'.$result['pid'],
821
+                                'attr_group'    => 'ad_position',
822
+                                'lang'  => $val['mark'],
823
+                            ])->getField('attr_value');
824
+                        $addsaveData['pid']   = $newPid;
825
+                        $addsaveData['title'] = $val['mark'].$addsaveData['title'];
826
+                        unset($addsaveData['id']);
827
+                        $ad_id = $ad_db->insertGetId($addsaveData);
828
+                    }
829
+                    /*--end*/
830
+                    
831
+                    /*所有语言绑定在主语言的ID容器里*/
832
+                    $data[] = [
833
+                        'attr_name'   => $attr_name,
834
+                        'attr_value'  => $ad_id,
835
+                        'lang'        => $val['mark'],
836
+                        'attr_group'  => $attr_group,
837
+                        'add_time'    => getTime(),
838
+                        'update_time' => getTime(),
839
+                    ];
840
+                    /*--end*/
841
+                }
842
+                if (!empty($data)) {
843
+                    model('LanguageAttr')->saveAll($data);
844
+                }
845
+            }
846
+        }
847
+    }
848
+}

+ 918
- 0
application/admin/controller/ZczsPosition.php Целия файл

@@ -0,0 +1,918 @@
1
+<?php
2
+/**
3
+ * 易优CMS
4
+ * ============================================================================
5
+ * 版权所有 2016-2028 海南赞赞网络科技有限公司,并保留所有权利。
6
+ * 网站地址: http://www.eyoucms.com
7
+ * ----------------------------------------------------------------------------
8
+ * 如果商业用途务必到官方购买正版授权, 以免引起不必要的法律纠纷.
9
+ * ============================================================================
10
+ * Author: 小虎哥 <1105415366@qq.com>
11
+ * Date: 2018-4-3
12
+ */
13
+
14
+namespace app\admin\controller;
15
+
16
+use think\Page;
17
+use think\Db;
18
+use think\Cache;
19
+
20
+class ZczsPosition extends Base
21
+{
22
+    private $ad_position_system_id = array(); // 系统默认位置ID,不可删除
23
+
24
+    public function _initialize() {
25
+        parent::_initialize();
26
+    }
27
+
28
+    public function index()
29
+    {
30
+        $list = array();
31
+        $get = input('get.');
32
+        $keywords = input('keywords/s');
33
+        $condition = [];
34
+        // 应用搜索条件
35
+        foreach (['keywords', 'type'] as $key) {
36
+            $get[$key] = addslashes(trim($get[$key]));
37
+            if (isset($get[$key]) && $get[$key] !== '') {
38
+                if ($key == 'keywords') {
39
+                    $condition['a.title'] = array('LIKE', "%{$get[$key]}%");
40
+                } else {
41
+                    $tmp_key = 'a.'.$key;
42
+                    $condition[$tmp_key] = array('eq', $get[$key]);
43
+                }
44
+            }
45
+        }
46
+
47
+        //增加地区条件
48
+        if(!empty($get['map']) && $get['map'] == '-1'){
49
+
50
+        }else{
51
+            if(!empty($get['map']) && (int)$get['map'] > 0) {
52
+                //查找
53
+                $zc_ids = Db::name('zc_map')->where('map_id','=',(int)$get['map'])->column('zc_id');
54
+                $condition['a.id'] = array('IN', $zc_ids);
55
+            }else{
56
+                $condition['a.type'] = array('eq', 0);
57
+            }
58
+        }
59
+
60
+
61
+        // 多语言
62
+        //$condition['a.lang'] = array('eq', $this->admin_lang);
63
+
64
+        $adPositionM =  Db::name('zczs_position');
65
+        $count = $adPositionM->alias('a')->where($condition)->count();// 查询满足要求的总记录数
66
+        $Page = new Page($count, config('paginate.list_rows'));// 实例化分页类 传入总记录数和每页显示的记录数
67
+        $list = $adPositionM->alias('a')->where($condition)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->getAllWithIndex('id');
68
+
69
+        //var_dump($condition);die;
70
+
71
+        // 每组获取三张图片
72
+        $pids = get_arr_column($list, 'id');
73
+        $ad = Db::name('zczs')
74
+            ->where(['pid' => ['IN', $pids], 'lang' => $this->admin_lang])
75
+            ->order('pid asc, id asc')
76
+            ->select();
77
+
78
+        foreach ($list as $k => $v) {
79
+
80
+            /*
81
+            if (1 == $v['type']) {
82
+                // 图片封面图片
83
+                $v['ad'] = [];
84
+                foreach ($ad as $m => $n) {
85
+                    if ($v['id'] == $n['pid']) {
86
+                        $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录
87
+                        $v['ad'][] = $n;
88
+                        unset($ad[$m]);
89
+                    } else {
90
+                        continue;
91
+                    }
92
+                }
93
+                // 若没有内容则显示默认图片
94
+                if (empty($v['ad'])) {
95
+                    $v['ad_count'] = 0;
96
+                    $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg';
97
+                } else {
98
+                    $v['ad_count'] = count($v['ad']);
99
+                }
100
+                // 广告类型
101
+                $v['type_name'] = '图片';
102
+            } else if (2 == $v['type']) {
103
+                // 多媒体封面图片
104
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_media.png';
105
+                // 广告类型
106
+                $v['type_name'] = '多媒体';
107
+            } else if (3 == $v['type']) {
108
+                // HTML代码封面图片
109
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/admin/images/ad_type_html.png';
110
+                // 广告类型
111
+                $v['type_name'] = 'HTML代码';
112
+            }*/
113
+
114
+
115
+            //处理图片
116
+            $v['ad'] = [];
117
+            foreach ($ad as $m => $n) {
118
+                if ($v['id'] == $n['pid']) {
119
+                    $n['litpic'] = get_default_pic($n['litpic']); // 支持子目录
120
+                    $v['ad'][] = $n;
121
+                    unset($ad[$m]);
122
+                } else {
123
+                    continue;
124
+                }
125
+            }
126
+            // 若没有内容则显示默认图片
127
+            if (empty($v['ad'])) {
128
+                $v['ad_count'] = 0;
129
+                $v['ad'][]['litpic'] = ROOT_DIR . '/public/static/common/images/not_adv.jpg';
130
+            } else {
131
+                $v['ad_count'] = count($v['ad']);
132
+            }
133
+
134
+            if((int)$v['type'] == 0){
135
+                $v['type_name'] = '全国';
136
+            }else{
137
+                //获取中间表
138
+                $map_ids = Db::name('zc_map')
139
+                    ->where('is_del','=',0)
140
+                    ->where('zc_id', $v['id'])
141
+                    ->column('map_id');
142
+
143
+                //获取地区
144
+                $oneList = Db::name('citysite')
145
+                    ->where('id','in',$map_ids)
146
+                    ->select();
147
+
148
+                foreach ($oneList as $k2 => $v2) {
149
+                    $v['type_name'] .= $v2['name'].',';
150
+                }
151
+            }
152
+            $list[$k] = $v;
153
+        }
154
+
155
+        $show = $Page->show();// 分页显示输出
156
+        $this->assign('page',$show);// 赋值分页输出
157
+        $this->assign('list',$list);// 赋值数据集
158
+        $this->assign('pager',$Page);// 赋值分页对象
159
+
160
+        /*多语言模式下,广告位ID显示主体语言的ID和属性title名称*/
161
+        $main_adv_list = [];
162
+        if ($this->admin_lang != $this->main_lang && empty($this->globalConfig['language_split'])) {
163
+            $attr_values = get_arr_column($list, 'id');
164
+            $languageAttrRow = Db::name('language_attr')->field('attr_name,attr_value')->where([
165
+                    'attr_value'    => ['IN', $attr_values],
166
+                    'attr_group'    => 'ad_position',
167
+                    'lang'          => $this->admin_lang,
168
+                ])->getAllWithIndex('attr_value');
169
+            $ids = [];
170
+            foreach ($languageAttrRow as $key => $val) {
171
+                $tid_tmp = str_replace('adp', '', $val['attr_name']);
172
+                array_push($ids, intval($tid_tmp));
173
+            }
174
+            $main_advRow = Db::name('zczs_position')->field("id,title,CONCAT('adp', id) AS attr_name")
175
+                ->where([
176
+                    'id'    => ['IN', $ids],
177
+                    'lang'  => $this->main_lang,
178
+                ])->getAllWithIndex('attr_name');
179
+            foreach ($list as $key => $val) {
180
+                $key_tmp = !empty($languageAttrRow[$val['id']]['attr_name']) ? $languageAttrRow[$val['id']]['attr_name'] : '';
181
+                $main_adv_list[$val['id']] = [
182
+                    'id'        => !empty($main_advRow[$key_tmp]['id']) ? $main_advRow[$key_tmp]['id'] : '',
183
+                    'title'  => !empty($main_advRow[$key_tmp]['title']) ? $main_advRow[$key_tmp]['title'] : '',
184
+                ];
185
+            }
186
+        }
187
+        $this->assign('main_adv_list', $main_adv_list);
188
+        /*end*/
189
+
190
+        //查找区域数据
191
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
192
+        //var_dump($pro_list);
193
+        $this->assign('pro_list', $pro_list);
194
+
195
+        return $this->fetch();
196
+    }
197
+    
198
+    /**
199
+     * 新增
200
+     */
201
+    public function add()
202
+    {
203
+        //防止php超时
204
+        function_exists('set_time_limit') && set_time_limit(0);
205
+
206
+        if (is_language() && empty($this->globalConfig['language_split'])) {
207
+            $this->language_access(); // 多语言功能操作权限
208
+        }
209
+
210
+        if (IS_POST) {
211
+            $post = input('post.');
212
+
213
+
214
+            //var_dump($post);
215
+            //die;
216
+            /*
217
+             * array(11) { ["title"]=> string(12) "建筑职称" ["type"]=> string(1) "1" ["img_id"]=> array(1) { [0]=> string(0) "" } ["img_litpic"]=> array(1) { [0]=> string(67) "https://oss.zc10000.com/uploads/allimg/20240528/1-24052R01005Z4.png" } ["img_title"]=> array(1) { [0]=> string(0) "" } ["img_links"]=> array(1) { [0]=> string(0) "" } ["img_intro"]=> array(1) { [0]=> string(0) "" } ["img_target"]=> array(1) { [0]=> string(1) "0" } ["video_litpic"]=> string(0) "" ["html_intro"]=> string(0) "" ["intro"]=> string(0) "" }
218
+             */
219
+            //var_dump($post);die;
220
+
221
+
222
+            $map = array(
223
+                'title' => trim($post['title']),
224
+                'lang'  => $this->admin_lang,
225
+            );
226
+            if(Db::name('zczs_position')->where($map)->count() > 0){
227
+                $this->error('该职称名称已存在,请检查', url('ZczsPosition/index'));
228
+            }
229
+
230
+            if((int)$post['type'] === 1) {
231
+                if(empty($post['map']) || !is_array($post['map'])) {
232
+                    $this->error('请选择至少一个地区', url('ZczsPosition/index'));
233
+                }
234
+            }
235
+
236
+            // 添加广告位置表信息
237
+            $data = array(
238
+                'title'       => trim($post['title']),
239
+                'type'        => $post['type'], //职称地区  全国或者地区
240
+                'intro'       => $post['intro'], //备注
241
+                'admin_id'    => session('admin_id'),
242
+                'lang'        => $this->admin_lang,
243
+                'add_time'    => getTime(),
244
+                'update_time' => getTime(),
245
+            );
246
+            $insertID = Db::name('zczs_position')->insertGetId($data);
247
+
248
+
249
+            if (!empty($insertID)) {
250
+
251
+                //处理多选
252
+                if((int)$post['type'] === 1){
253
+                    //$post['map'] 已验证 是非空数组
254
+                    //插入中间表
255
+                    $map_data = [];
256
+                    foreach ($post['map'] as $k => $v) {
257
+                        $map_data[] = [
258
+                            'map_id' => $v,
259
+                            'zc_id' => $insertID,
260
+                            'add_time' => time(),
261
+                            'is_del' => 0,
262
+                            'del_time' => 0
263
+                        ];
264
+                    }
265
+                    Db::name('zc_map')->insertAll($map_data);
266
+                }else{
267
+                    //属于全国 不需要添加区域
268
+                }
269
+
270
+                // 同步广告位置ID到多语言的模板变量里,添加多语言广告位
271
+                //$this->syn_add_language_attribute($insertID);
272
+
273
+                // 读取组合广告位的图片及信息
274
+                $AdData = [];
275
+                if (!empty($post['img_litpic'])) { // 图片类型
276
+                    $i = 1;
277
+                    foreach ($post['img_litpic'] as $key => $value) {
278
+                        if (!empty($value)) {
279
+                            // 去掉http:
280
+                            $value = str_replace("http:", "", $value);
281
+                            // 去掉https:
282
+                            $value = str_replace("https:", "", $value);
283
+                            // 主要参数
284
+                            $AdData['litpic'] = $value;
285
+                            $AdData['pid']    = $insertID;
286
+                            $AdData['title']  = trim($post['img_title'][$key]);
287
+                            $AdData['links']  = $post['img_links'][$key];
288
+                            $AdData['intro']  = $post['img_intro'][$key];
289
+                            $target = !empty($post['img_target'][$key]) ? 1 : 0;
290
+                            $AdData['target'] = $target;
291
+                            // 其他参数
292
+                            $AdData['media_type']  = 1;
293
+                            $AdData['admin_id']    = session('admin_id');
294
+                            $AdData['lang']        = $this->admin_lang;
295
+                            $AdData['sort_order']  = $i++;
296
+                            $AdData['add_time']    = getTime();
297
+                            $AdData['update_time'] = getTime();
298
+                            // 添加到广告图表
299
+                            $ad_id = Db::name('zczs')->add($AdData);
300
+                            // 同步多语言
301
+                            //$this->syn_add_ad_language_attribute($ad_id);
302
+                        }
303
+                    }
304
+                }
305
+
306
+                //Cache::clear('ad');
307
+                adminLog('新增职称:'.$post['title']);
308
+                $this->success("操作成功", url('ZczsPosition/index'));
309
+            } else {
310
+                $this->error("操作失败", url('ZczsPosition/index'));
311
+            }
312
+        }
313
+
314
+        // 上传通道
315
+        $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select();
316
+        $WeappOpen = [];
317
+        foreach ($WeappConfig as $value) {
318
+            if ('Qiniuyun' == $value['code']) {
319
+                $WeappOpen['qny_open'] = $value['status'];
320
+            } else if ('AliyunOss' == $value['code']) {
321
+                $WeappOpen['oss_open'] = $value['status'];
322
+            } else if ('Cos' == $value['code']) {
323
+                $WeappOpen['cos_open'] = $value['status'];
324
+            }
325
+        }
326
+        $this->assign('WeappOpen', $WeappOpen);
327
+
328
+        // 系统最大上传视频的大小
329
+        $upload_max_filesize = upload_max_filesize();
330
+        $this->assign('upload_max_filesize', $upload_max_filesize);
331
+
332
+        // 视频类型
333
+        $media_type = tpCache('global.media_type');
334
+        $media_type = !empty($media_type) ? $media_type : config('global.media_ext');
335
+        $media_type = str_replace(",", "|", $media_type);
336
+        $this->assign('media_type', $media_type);
337
+
338
+
339
+        //查找区域数据
340
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
341
+        //var_dump($pro_list);
342
+        $this->assign('pro_list', $pro_list);
343
+
344
+
345
+        return $this->fetch();
346
+    }
347
+
348
+    
349
+    /**
350
+     * 编辑
351
+     */
352
+    public function edit()
353
+    {
354
+        if (IS_POST) {
355
+
356
+
357
+            $post = input('post.');
358
+            if (!empty($post['id'])) {
359
+
360
+
361
+                $post['id'] = intval($post['id']);
362
+                if (array_key_exists($post['id'], $this->ad_position_system_id)) {
363
+                    $this->error("不可更改系统预定义位置", url('ZczsPosition/edit',array('id'=>$post['id'])));
364
+                }
365
+
366
+                /* 判断除自身外是否还有相同广告名称已存在 */
367
+                $map = array(
368
+                    'id'    => array('NEQ', $post['id']),
369
+                    'title' => trim($post['title']),
370
+                    //'lang'  => $this->admin_lang,
371
+                );
372
+                if (Db::name('zczs_position')->where($map)->count() > 0) $this->error('该职称名称已存在,请检查');
373
+                /* END */
374
+
375
+
376
+                if((int)$post['type'] === 1) {
377
+                    if(empty($post['map']) || !is_array($post['map'])) {
378
+                        $this->error('请选择至少一个地区', url('ZczsPosition/index'));
379
+                    }
380
+                }
381
+
382
+
383
+                /* 判断广告是否切换广告类型 */
384
+                // $where = [
385
+                //     'id'   => $post['id'],
386
+                //     'type' => $post['type'],
387
+                //     'lang' => $this->admin_lang
388
+                // ];
389
+                // if (Db::name('zczs_position')->where($where)->count() == 0) {
390
+                //     // 已切换广告类型,清除广告中的广告内容
391
+                //     $where = [
392
+                //         'pid'  => $post['id'],
393
+                //         'lang' => $this->admin_lang
394
+                //     ];
395
+                //     Db::name('zczs')->where($where)->delete();
396
+                // }
397
+                /* END */
398
+
399
+                /* 修改广告主体信息 */
400
+                $data = array(
401
+                    'id'          => $post['id'],
402
+                    'title'       => trim($post['title']),
403
+                    'type'        => $post['type'], //全国或者地区
404
+                    'intro'       => $post['intro'],
405
+                    'update_time' => getTime(),
406
+                );
407
+                $resultID = Db::name('zczs_position')->update($data);
408
+                /* END */
409
+            }
410
+
411
+            if (!empty($resultID)) {
412
+
413
+
414
+                //处理多选
415
+                if((int)$post['type'] === 1){
416
+                    //$post['map'] 已验证 是非空数组
417
+                    //先删除旧数据
418
+                    Db::name('zc_map')->where('zc_id','=',$post['id'])->update([
419
+                            'is_del' => 1,
420
+                            'del_time' => time()
421
+                        ]);
422
+                    //插入中间表
423
+                    $map_data = [];
424
+                    foreach ($post['map'] as $k => $v) {
425
+                        $map_data[] = [
426
+                            'map_id' => $v,
427
+                            'zc_id' => $post['id'],
428
+                            'add_time' => time(),
429
+                            'is_del' => 0,
430
+                            'del_time' => 0
431
+                        ];
432
+                    }
433
+                    Db::name('zc_map')->insertAll($map_data);
434
+                }else{
435
+                    //属于全国 删除所有区域
436
+                    Db::name('zc_map')->where('zc_id','=',$post['id'])->update([
437
+                            'is_del' => 1,
438
+                            'del_time' => time()
439
+                        ]);
440
+                }
441
+
442
+                $ad_db = Db::name('zczs');
443
+                if (!empty($post['img_litpic'])) { // 图片类型
444
+                    // 读取组合广告位的图片及信息
445
+                    $i = 1;
446
+                    foreach ($post['img_litpic'] as $key => $value) {
447
+                        if (!empty($value)) {
448
+                            // 去掉http:
449
+                            $value = str_replace("http:", "", $value);
450
+                            // 去掉https:
451
+                            $value = str_replace("https:", "", $value);
452
+                            // 是否新窗口打开
453
+                            $target = !empty($post['img_target'][$key]) ? 1 : 0;
454
+                            // 广告位ID,为空则表示添加
455
+                            $ad_id = $post['img_id'][$key];
456
+                            if (!empty($ad_id)) {
457
+                                // 查询更新条件
458
+                                $where = [
459
+                                    'id'   => $ad_id,
460
+                                    'lang' => $this->admin_lang,
461
+                                ];
462
+                                if ($ad_db->where($where)->count() > 0) {
463
+                                    // 主要参数
464
+                                    $AdData['litpic']      = $value;
465
+                                    $AdData['title']       = $post['img_title'][$key];
466
+                                    $AdData['links']       = $post['img_links'][$key];
467
+                                    $AdData['intro']       = $post['img_intro'][$key];
468
+                                    $AdData['target']      = $target;
469
+                                    // 其他参数
470
+                                    $AdData['sort_order']  = $i++;
471
+                                    $AdData['update_time'] = getTime();
472
+                                    // 更新,不需要同步多语言
473
+                                    $ad_db->where($where)->update($AdData);
474
+                                } else {
475
+                                    // 主要参数
476
+                                    $AdData['litpic']      = $value;
477
+                                    $AdData['pid']         = $post['id'];
478
+                                    $AdData['title']       = $post['img_title'][$key];
479
+                                    $AdData['links']       = $post['img_links'][$key];
480
+                                    $AdData['intro']       = $post['img_intro'][$key];
481
+                                    $AdData['target']      = $target;
482
+                                    // 其他参数
483
+                                    $AdData['media_type']  = 1;
484
+                                    $AdData['admin_id']    = session('admin_id');
485
+                                    $AdData['lang']        = $this->admin_lang;
486
+                                    $AdData['sort_order']  = $i++;
487
+                                    $AdData['add_time']    = getTime();
488
+                                    $AdData['update_time'] = getTime();
489
+                                    $ad_id = $ad_db->add($AdData);
490
+                                    // 同步多语言
491
+                                    //$this->syn_add_ad_language_attribute($ad_id);
492
+                                }
493
+                            } else {
494
+                                // 主要参数
495
+                                $AdData['litpic']      = $value;
496
+                                $AdData['pid']         = $post['id'];
497
+                                $AdData['title']       = $post['img_title'][$key];
498
+                                $AdData['links']       = $post['img_links'][$key];
499
+                                $AdData['intro']       = $post['img_intro'][$key];
500
+                                $AdData['target']      = $target;
501
+                                // 其他参数
502
+                                $AdData['media_type']  = 1;
503
+                                $AdData['admin_id']    = session('admin_id');
504
+                                $AdData['lang']        = $this->admin_lang;
505
+                                $AdData['sort_order']  = $i++;
506
+                                $AdData['add_time']    = getTime();
507
+                                $AdData['update_time'] = getTime();
508
+                                $ad_id = $ad_db->add($AdData);
509
+                                // 同步多语言
510
+                                //$this->syn_add_ad_language_attribute($ad_id);
511
+                            }
512
+                        }
513
+                    }
514
+
515
+                }
516
+                //Cache::clear('ad');
517
+                adminLog('编辑职称名称:'.$post['title']);
518
+                $this->success("操作成功", url('ZczsPosition/index'));
519
+            } else {
520
+                $this->error("操作失败");
521
+            }
522
+        }
523
+
524
+        $assign_data = array();
525
+
526
+        $id = input('id/d');
527
+        $field = Db::name('zczs_position')->field('a.*')->alias('a')->where(array('a.id'=>$id))->find();
528
+        if (empty($field)) $this->error('职称不存在,请联系管理员!');
529
+        switch ($field['type']) {
530
+            case '1':
531
+                $field['type_name'] = '图片';
532
+                break;
533
+            case '2':
534
+                $field['type_name'] = '多媒体';
535
+                break;
536
+            case '3':
537
+                $field['type_name'] = 'HTML代码';
538
+                break;
539
+        }
540
+        $assign_data['field'] = $field;
541
+
542
+        // 广告
543
+        $ad_data = Db::name('zczs')->where(array('pid'=>$field['id']))->order('sort_order asc')->select();
544
+        foreach ($ad_data as $key => $val) {
545
+            if (1 == $val['media_type']) {
546
+                $ad_data[$key]['litpic'] = get_default_pic($val['litpic']); // 支持子目录
547
+            }
548
+        }
549
+        $assign_data['ad_data'] = $ad_data;
550
+
551
+        // 上传通道
552
+        $WeappConfig = Db::name('weapp')->field('code, status')->where('code', 'IN', ['Qiniuyun', 'AliyunOss', 'Cos'])->select();
553
+        $WeappOpen = [];
554
+        foreach ($WeappConfig as $value) {
555
+            if ('Qiniuyun' == $value['code']) {
556
+                $WeappOpen['qny_open'] = $value['status'];
557
+            } else if ('AliyunOss' == $value['code']) {
558
+                $WeappOpen['oss_open'] = $value['status'];
559
+            } else if ('Cos' == $value['code']) {
560
+                $WeappOpen['cos_open'] = $value['status'];
561
+            }
562
+        }
563
+        $this->assign('WeappOpen', $WeappOpen);
564
+
565
+        // 系统最大上传视频的大小
566
+        $file_size  = tpCache('global.file_size');
567
+        $postsize   = @ini_get('file_uploads') ? ini_get('post_max_size') : -1;
568
+        $fileupload = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : -1;
569
+        $min_size   = strval($file_size) < strval($postsize) ? $file_size : $postsize;
570
+        $min_size   = strval($min_size) < strval($fileupload) ? $min_size : $fileupload;
571
+        $upload_max_filesize = intval($min_size) * 1024 * 1024;
572
+        $assign_data['upload_max_filesize'] = $upload_max_filesize;
573
+
574
+        // 视频类型
575
+        $media_type = tpCache('global.media_type');
576
+        $media_type = !empty($media_type) ? $media_type : config('global.media_ext');
577
+        $media_type = str_replace(",", "|", $media_type);
578
+        $assign_data['media_type'] = $media_type;
579
+
580
+
581
+        //查询关联区域数据
582
+        $map_list = Db::name('zc_map')->where(['zc_id'=>$field['id'],'is_del'=>0])->column('map_id');
583
+        //var_dump($map_list);die();
584
+        $this->assign('$map_list', $map_list);
585
+
586
+
587
+        //查找区域数据
588
+        $pro_list = Db::name('citysite')->where(['level'=>1,'is_open'=>1])->select();
589
+
590
+
591
+        foreach ($pro_list as $k=>$v){
592
+            if(in_array($v['id'],$map_list) === true){
593
+                $pro_list[$k]['is_check'] = "checked";
594
+            }else{
595
+                $pro_list[$k]['is_check'] = '';
596
+            }
597
+        }
598
+
599
+        //var_dump($pro_list);
600
+        $this->assign('pro_list', $pro_list);
601
+        $this->assign('curr_id', $field['type']);
602
+
603
+
604
+
605
+
606
+        $this->assign($assign_data);
607
+        return $this->fetch();
608
+    }
609
+
610
+    /**
611
+     * 删除广告图片
612
+     */
613
+    public function del_imgupload()
614
+    {
615
+        if (is_language() && empty($this->globalConfig['language_split'])) {
616
+            $this->language_access(); // 多语言功能操作权限
617
+        }
618
+
619
+        $id_arr = input('del_id/a');
620
+        $id_arr = eyIntval($id_arr);
621
+        if(IS_POST && !empty($id_arr)){
622
+            /*多语言*/
623
+            $attr_name_arr = [];
624
+            if (empty($this->globalConfig['language_split'])) {
625
+                foreach ($id_arr as $key => $val) {
626
+                    $attr_name_arr[] = 'ad'.$val;
627
+                }
628
+                if (is_language()) {
629
+                    $new_id_arr = Db::name('language_attr')->where([
630
+                            'attr_name'  => ['IN', $attr_name_arr],
631
+                            'attr_group'    => 'ad',
632
+                        ])->column('attr_value');
633
+                    !empty($new_id_arr) && $id_arr = $new_id_arr;
634
+                }
635
+            } else {
636
+                if (get_admin_lang() == get_main_lang()) {
637
+                    foreach ($id_arr as $key => $val) {
638
+                        $attr_name_arr[] = 'ad'.$val;
639
+                    }
640
+                }
641
+            }
642
+            /*--end*/
643
+
644
+            $r = Db::name('zczs')->where([
645
+                    'id' => ['IN', $id_arr],
646
+                ])
647
+                ->delete();
648
+            if ($r !== false) {
649
+                /*多语言*/
650
+                if (!empty($attr_name_arr)) {
651
+                    Db::name('language_attr')->where([
652
+                            'attr_name' => ['IN', $attr_name_arr],
653
+                            'attr_group'    => 'ad',
654
+                        ])->delete();
655
+
656
+                    Db::name('language_attribute')->where([
657
+                            'attr_name' => ['IN', $attr_name_arr],
658
+                            'attr_group'    => 'ad',
659
+                        ])->delete();
660
+                }
661
+                /*--end*/
662
+                Cache::clear('ad');
663
+                adminLog('删除广告-id:'.implode(',', $id_arr));
664
+            }
665
+        }
666
+    }
667
+
668
+    /**
669
+     * 删除
670
+     */
671
+    public function del()
672
+    {
673
+        if (is_language() && empty($this->globalConfig['language_split'])) {
674
+            $this->language_access(); // 多语言功能操作权限
675
+        }
676
+
677
+        $id_arr = input('del_id/a');
678
+        $id_arr = eyIntval($id_arr);
679
+        if(IS_POST && !empty($id_arr)){
680
+            foreach ($id_arr as $key => $val) {
681
+                if(array_key_exists($val, $this->ad_position_system_id)){
682
+                    $this->error('系统预定义,不能删除');
683
+                }
684
+            }
685
+
686
+            /*多语言*/
687
+            $attr_name_arr = [];
688
+            foreach ($id_arr as $key => $val) {
689
+                $attr_name_arr[] = 'adp'.$val;
690
+            }
691
+            if (is_language() && empty($this->globalConfig['language_split'])) {
692
+                $new_id_arr = Db::name('language_attr')->where([
693
+                        'attr_name' => ['IN', $attr_name_arr],
694
+                        'attr_group'    => 'ad_position',
695
+                    ])->column('attr_value');
696
+                !empty($new_id_arr) && $id_arr = $new_id_arr;
697
+            }
698
+            /*--end*/
699
+            $r = Db::name('zczs_position')->where('id','IN',$id_arr)->delete();
700
+            if ($r !== false) {
701
+
702
+                /*多语言*/
703
+                if (!empty($attr_name_arr)) {
704
+                    if (get_admin_lang() == get_main_lang()) {
705
+                        Db::name('language_attribute')->where([
706
+                                'attr_name' => ['IN', $attr_name_arr],
707
+                                'attr_group'    => 'ad_position',
708
+                            ])->delete();
709
+                    }
710
+                    if (empty($this->globalConfig['language_split'])) {
711
+                        Db::name('language_attr')->where([
712
+                                'attr_name' => ['IN', $attr_name_arr],
713
+                                'attr_group'    => 'ad_position',
714
+                            ])->delete();
715
+                    } else {
716
+                        Db::name('language_attr')->where([
717
+                                'attr_value' => ['IN', $id_arr],
718
+                                'attr_group'    => 'ad_position',
719
+                            ])->delete();
720
+                    }
721
+                }
722
+                /*--end*/
723
+
724
+                $ad_ids = Db::name('zczs')->where(['pid'=>['IN', $id_arr]])->column('id');
725
+                $attr_name_arr = [];
726
+                foreach ($ad_ids as $key => $val) {
727
+                    $attr_name_arr[] = "ad{$val}";
728
+                }
729
+                $r1 = Db::name('zczs')->where('pid','IN',$id_arr)->delete();
730
+                if ($r1 !== false) {
731
+                    /*多语言*/
732
+                    if (!empty($attr_name_arr)) {
733
+                        if (get_admin_lang() == get_main_lang()) {
734
+                            Db::name('language_attribute')->where([
735
+                                    'attr_name' => ['IN', $attr_name_arr],
736
+                                    'attr_group'    => 'ad',
737
+                                ])->delete();
738
+                        }
739
+                        if (empty($this->globalConfig['language_split'])) {
740
+                            Db::name('language_attr')->where([
741
+                                    'attr_name' => ['IN', $attr_name_arr],
742
+                                    'attr_group'    => 'ad',
743
+                                ])->delete();
744
+                        } else {
745
+                            Db::name('language_attr')->where([
746
+                                    'attr_value' => ['IN', $ad_ids],
747
+                                    'attr_group'    => 'ad',
748
+                                ])->delete();
749
+                        }
750
+                    }
751
+                    /*--end*/
752
+                }
753
+
754
+                Cache::clear('ad');
755
+                adminLog('删除广告-id:'.implode(',', $id_arr));
756
+                $this->success('删除成功');
757
+            } else {
758
+                $this->error('删除失败');
759
+            }
760
+        }else{
761
+            $this->error('参数有误');
762
+        }
763
+    }
764
+
765
+    /**
766
+     * 打开预览视频
767
+     */
768
+    public function open_preview_video()
769
+    {
770
+        $post = input('post.');
771
+        $video_litpic = $post['video_litpic'];
772
+        if (!is_http_url($video_litpic)) {
773
+            $video_litpic = request()->domain() . handle_subdir_pic($video_litpic, 'media');
774
+        }
775
+        $this->success('执行成功', $video_litpic);
776
+    }
777
+
778
+    /**
779
+     * 检测广告名称是否存在重复
780
+     */
781
+    public function detection_title_repeat()
782
+    {
783
+        if (IS_AJAX_POST) {
784
+            $post = input('post.');
785
+            $where = [
786
+                'id'    => ['NEQ', $post['id']],
787
+                'title' => trim($post['title']),
788
+                'lang'  => $this->admin_lang,
789
+            ];
790
+            $count = Db::name('zczs_position')->where($where)->count();
791
+            if (empty($count)) {
792
+                $this->success('检测通过');
793
+            } else {
794
+                $this->error('该广告名称已存在,请检查');
795
+            }
796
+        }
797
+    }
798
+
799
+    /**
800
+     * 同步新增广告位置ID到多语言的模板变量里
801
+     */
802
+    private function syn_add_language_attribute($adp_id)
803
+    {
804
+        /*单语言情况下不执行多语言代码*/
805
+        if (!is_language() || tpCache('language.language_split')) {
806
+            return true;
807
+        }
808
+        /*--end*/
809
+
810
+        $attr_group = 'ad_position';
811
+        $admin_lang = $this->admin_lang;
812
+        $main_lang = $this->main_lang;
813
+        $languageRow = Db::name('language')->field('mark')->order('id asc')->select();
814
+        if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言
815
+            $ad_position_db = Db::name('zczs_position');
816
+            $result = $ad_position_db->find($adp_id);
817
+            $attr_name = 'adp'.$adp_id;
818
+            $r = Db::name('language_attribute')->save([
819
+                'attr_title'    => $result['title'],
820
+                'attr_name'     => $attr_name,
821
+                'attr_group'    => $attr_group,
822
+                'add_time'      => getTime(),
823
+                'update_time'   => getTime(),
824
+            ]);
825
+            if (false !== $r) {
826
+                $data = [];
827
+                foreach ($languageRow as $key => $val) {
828
+                    /*同步新广告位置到其他语言广告位置列表*/
829
+                    if ($val['mark'] != $admin_lang) {
830
+                        $addsaveData = $result;
831
+                        $addsaveData['lang']  = $val['mark'];
832
+                        $addsaveData['title'] = $val['mark'].$addsaveData['title'];
833
+                        unset($addsaveData['id']);
834
+                        $adp_id = $ad_position_db->insertGetId($addsaveData);
835
+                    }
836
+                    /*--end*/
837
+                    
838
+                    /*所有语言绑定在主语言的ID容器里*/
839
+                    $data[] = [
840
+                        'attr_name' => $attr_name,
841
+                        'attr_value'    => $adp_id,
842
+                        'lang'  => $val['mark'],
843
+                        'attr_group'    => $attr_group,
844
+                        'add_time'      => getTime(),
845
+                        'update_time'   => getTime(),
846
+                    ];
847
+                    /*--end*/
848
+                }
849
+                if (!empty($data)) {
850
+                    model('LanguageAttr')->saveAll($data);
851
+                }
852
+            }
853
+        }
854
+    }
855
+
856
+    /**
857
+     * 同步新增广告ID到多语言的模板变量里
858
+     */
859
+   private function syn_add_ad_language_attribute($ad_id)
860
+    {
861
+        /*单语言情况下不执行多语言代码*/
862
+        if (!is_language() || tpCache('language.language_split')) {
863
+            return true;
864
+        }
865
+        /*--end*/
866
+
867
+        $attr_group = 'ad';
868
+        $admin_lang = $this->admin_lang;
869
+        $main_lang = get_main_lang();
870
+        $languageRow = Db::name('language')->field('mark')->order('id asc')->select();
871
+        if (!empty($languageRow) && $admin_lang == $main_lang) { // 当前语言是主体语言,即语言列表最早新增的语言
872
+            $ad_db = Db::name('zczs');
873
+            $result = $ad_db->find($ad_id);
874
+            $attr_name = 'ad'.$ad_id;
875
+            $r = Db::name('language_attribute')->save([
876
+                'attr_title'    => $result['title'],
877
+                'attr_name'     => $attr_name,
878
+                'attr_group'    => $attr_group,
879
+                'add_time'      => getTime(),
880
+                'update_time'   => getTime(),
881
+            ]);
882
+            if (false !== $r) {
883
+                $data = [];
884
+                foreach ($languageRow as $key => $val) {
885
+                    /*同步新广告到其他语言广告列表*/
886
+                    if ($val['mark'] != $admin_lang) {
887
+                        $addsaveData = $result;
888
+                        $addsaveData['lang'] = $val['mark'];
889
+                        $newPid = Db::name('language_attr')->where([
890
+                                'attr_name' => 'adp'.$result['pid'],
891
+                                'attr_group'    => 'ad_position',
892
+                                'lang'  => $val['mark'],
893
+                            ])->getField('attr_value');
894
+                        $addsaveData['pid']   = $newPid;
895
+                        $addsaveData['title'] = $val['mark'].$addsaveData['title'];
896
+                        unset($addsaveData['id']);
897
+                        $ad_id = $ad_db->insertGetId($addsaveData);
898
+                    }
899
+                    /*--end*/
900
+                    
901
+                    /*所有语言绑定在主语言的ID容器里*/
902
+                    $data[] = [
903
+                        'attr_name'   => $attr_name,
904
+                        'attr_value'  => $ad_id,
905
+                        'lang'        => $val['mark'],
906
+                        'attr_group'  => $attr_group,
907
+                        'add_time'    => getTime(),
908
+                        'update_time' => getTime(),
909
+                    ];
910
+                    /*--end*/
911
+                }
912
+                if (!empty($data)) {
913
+                    model('LanguageAttr')->saveAll($data);
914
+                }
915
+            }
916
+        }
917
+    }
918
+}

+ 19
- 0
application/admin/template/index/switch_map.htm Целия файл

@@ -339,6 +339,25 @@
339 339
                          </li>
340 340
                          {/eq}
341 341
 
342
+                         <!--新增职称问答模块--->
343
+                         {eq name="'ZcwdPosition@index'|is_check_access" value="1"}
344
+                         <li class="more_li" id="li_1007" {if condition="in_array('1007',$admin_menu_id_arr) || in_array('1007',$not_role_menu_id_arr)"}style="display:none"{/if}>
345
+                         <div class="flex-dir-row flex-a-center">
346
+                             <div class="icon_bg icon_bg_no">
347
+                                 <i class="iconfont e-guanggao f-20 col-848484" ></i>
348
+                             </div>
349
+                             <div class="ml-8 white-space">
350
+                                 <a href="javascript:void(0);" data-href="{:url('ZcwdPosition/index')}"  onclick="gourl2(this,1);">职称问答</a>
351
+                             </div>
352
+                         </div>
353
+                         {notempty name="$is_founder"}
354
+                         <div class="icon-link_add">
355
+                             <div title="加入导航显示" data-menu_id="1007" class="iconfont e-jiahao2"></div>
356
+                         </div>
357
+                         {/notempty}
358
+                         </li>
359
+                         {/eq}
360
+
342 361
 
343 362
 
344 363
                          {eq name="'Tags@index'|is_check_access" value="1"}

+ 57
- 7
application/admin/template/zc_position/add.htm Целия файл

@@ -26,19 +26,48 @@
26 26
                     <!--<label class="curpoin"><input type="radio" id="type{$field1.id}" name="type" value="{$field1.id}" onclick="TypeSwitch({$field1.id});">{$field1.name}</label>
27 27
                     -->
28 28
 
29
+                    <?php
30
+                        /*
31
+                         * {eyou:foreach name='$pro_list' item='field1'}
32
+                    <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
33
+                    {/eyou:foreach}
34
+                         */
35
+                    ?>
36
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
37
+                        <option value="0">全国</option>
38
+                        <option value="1">归属地区</option>
39
+                    </select>
29 40
 
30
-                    <select name="type" class="select" style="margin:0px 5px;height:30px;">
31
-                        <option value="">--选择地区--</option>
41
+                    <script>
42
+                        $(function(){
43
+                            $("#selectTest").change(function(e){
44
+                                console.log($(this).val());
45
+                                var v = $(this).val();
46
+                                if(v == 1){
47
+                                    $('#citychoose').show();
48
+                                }else{
49
+                                    $('#citychoose').hide();
50
+                                }
51
+                            });
52
+                        });
53
+                    </script>
32 54
 
33
-                        {eyou:foreach name='$pro_list' item='field1'}
34
-                        <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
35
-                        {/eyou:foreach}
55
+                    <span class="err"></span>
56
+                    <p class="notic"></p>
57
+                </dd>
58
+            </dl>
36 59
 
37
-                    </select>
60
+            <dl class="row" id="citychoose" style="display: none;">
61
+                <dt class="tit"> <label for="title"><em>*</em>地区选择</label> </dt>
62
+                <dd class="opt">
38 63
 
64
+                    <!---checked-->
65
+                    {eyou:foreach name='$pro_list' item='field1'}
66
+                    <input type="checkbox" name="map[]" value="{$field1.id}" id="category{$field1.id}"/>{$field1.name}
67
+                    {/eyou:foreach}
39 68
 
40 69
                     <span class="err"></span>
41
-                    <p class="notic"></p>
70
+                    <p class="notic2 red" id="title_tips"></p>
42 71
                 </dd>
43 72
             </dl>
44 73
 
@@ -633,6 +662,27 @@
633 662
             layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
634 663
             return false;
635 664
         }
665
+
666
+        if($('#selectTest').val() == '1'){
667
+            var checkedValues = [];
668
+            $('#post_form input[type=checkbox]:checked').each(function() {
669
+                checkedValues.push($(this).val());
670
+            });
671
+            console.log(checkedValues); // 打印选中的checkbox值
672
+            if(checkedValues.length > 0){
673
+
674
+            }else{
675
+                layer.msg('请选择地区!', {icon: 2,time: 1000});
676
+                return false;
677
+            }
678
+        }
679
+
680
+
681
+        //打印
682
+        /*console.log($('#post_form').serialize());
683
+        return false;*/
684
+
685
+
636 686
         layer_loading('正在处理');
637 687
         $.ajax({
638 688
             type : 'post',

+ 22
- 0
application/admin/template/zc_position/admin_bar.htm Целия файл

@@ -0,0 +1,22 @@
1
+    <div class="fixed-bar">
2
+        <div class="item-title">
3
+            <a class="back_xin" href="{:url('Index/switch_map')}" title="返回"><i class="iconfont e-fanhui"></i></a>
4
+            <div class="subject">
5
+                <h3>职称管理</h3>
6
+                <h5></h5>
7
+            </div>
8
+            <ul class="tab-base nc-row">
9
+                {eq name="'ZcPosition@index'|is_check_access" value="1"}
10
+                <li><a href="{:url("ZcPosition/index")}" class="tab {if condition="in_array($Request.controller, array('ZcPosition'))"}current{/if}"><span>职称管理</span></a></li>
11
+                {/eq}
12
+
13
+                {eq name="'ZczsPosition@index'|is_check_access" value="1"}
14
+                <li><a href="{:url("ZczsPosition/index")}" class="tab {if condition="in_array($Request.controller, array('ZczsPosition'))"}current{/if}"><span>职称证书</span></a></li>
15
+                {/eq}
16
+
17
+                {eq name="'ZcwdPosition@index'|is_check_access" value="1"}
18
+                <li><a href="{:url("ZcwdPosition/index")}" class="tab {if condition="in_array($Request.controller, array('ZcwdPosition'))"}current{/if}"><span>职称问答</span></a></li>
19
+                {/eq}
20
+            </ul>
21
+        </div>
22
+    </div>

+ 75
- 1
application/admin/template/zc_position/edit.htm Целия файл

@@ -19,7 +19,12 @@
19 19
             <dl class="row">
20 20
                 <dt class="tit"> <label for="type">选择地区</label> </dt>
21 21
                 <dd class="opt">
22
-                    <select name="type" class="select" style="margin:0px 5px;height:30px;">
22
+
23
+
24
+                    <?php
25
+                    /*
26
+                     *
27
+                     * <select name="type" class="select" style="margin:0px 5px;height:30px;">
23 28
                         <option value="">--选择地区--</option>
24 29
 
25 30
                         {eyou:foreach name='$pro_list' item='field1'}
@@ -27,9 +32,58 @@
27 32
                         {/eyou:foreach}
28 33
 
29 34
                     </select>
35
+
36
+                     */
37
+
38
+                    ?>
39
+
40
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
41
+                        <option value="0" {eq name="0" value="$field.type"}selected{/eq}>全国</option>
42
+                        <option value="1" {eq name="1" value="$field.type"}selected{/eq}>归属地区</option>
43
+                    </select>
44
+
45
+                    <script>
46
+                        $(function(){
47
+                            $("#selectTest").change(function(e){
48
+                                console.log($(this).val());
49
+                                var v = $(this).val();
50
+                                if(v == 1){
51
+                                    $('#citychoose').show();
52
+                                }else{
53
+                                    $('#citychoose').hide();
54
+                                }
55
+                            });
56
+                        });
57
+                    </script>
58
+
59
+
30 60
                 </dd>
31 61
             </dl>
32 62
 
63
+
64
+
65
+            <dl class="row" id="citychoose" {eq name="0" value="$field.type"}style="display: none;"{/eq}>
66
+                <dt class="tit"> <label for="title"><em>*</em>地区选择</label> </dt>
67
+                <dd class="opt">
68
+
69
+                    <!---checked  $map_list-->
70
+                    {eyou:foreach name='$pro_list' item='field1'}
71
+                    <input type="checkbox" name="map[]" value="{$field1.id}" id="category{$field1.id}"
72
+                           {$field1.is_check}
73
+                    />{$field1.name}
74
+                    {/eyou:foreach}
75
+
76
+                    <span class="err"></span>
77
+                    <p class="notic2 red" id="title_tips"></p>
78
+                </dd>
79
+            </dl>
80
+
81
+
82
+
83
+
84
+
85
+
86
+
33 87
             <!--暂时找不到控制显示隐藏的地方-->
34 88
             <dl class="row 1615775137_dl" style="display: block;" id="1615775137_1" style="z-index: 2">
35 89
                 <dt class="tit"> <label>主题背景</label> </dt>
@@ -685,6 +739,26 @@
685 739
             layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
686 740
             return false;
687 741
         }
742
+
743
+        if($('#selectTest').val() == '1'){
744
+            var checkedValues = [];
745
+            $('#post_form input[type=checkbox]:checked').each(function() {
746
+                checkedValues.push($(this).val());
747
+            });
748
+            console.log(checkedValues); // 打印选中的checkbox值
749
+            if(checkedValues.length > 0){
750
+
751
+            }else{
752
+                layer.msg('请选择地区!', {icon: 2,time: 1000});
753
+                return false;
754
+            }
755
+        }
756
+
757
+        //打印
758
+        /*console.log($('#post_form').serialize());
759
+        return false;*/
760
+
761
+
688 762
         layer_loading('正在处理');
689 763
         $.ajax({
690 764
             type : 'post',

+ 16
- 5
application/admin/template/zc_position/index.htm Целия файл

@@ -4,6 +4,10 @@
4 4
 <div id="append_parent"></div>
5 5
 <div id="ajaxwaitid"></div>
6 6
 <div class="page min-hg-c-10">
7
+
8
+    {include file="zc_position/admin_bar" /}
9
+
10
+
7 11
     <div class="flexigrid">
8 12
         <div class="mDiv">
9 13
             <div class="ftitle">
@@ -22,16 +26,18 @@
22 26
             <form id="searchForm" class="navbar-form form-inline" action="{:url('ZcPosition/index')}" method="get" onsubmit="layer_loading('正在处理');">
23 27
                 {$searchform.hidden|default=''}
24 28
                 <div class="sDiv">
25
-                    <div class="sDiv2">
26
-                        <select name="type" class="select" style="margin:0px 5px;">
27
-                            <option value="">--选择地区--</option>
28 29
 
30
+                    <div class="sDiv2">
31
+                        <select name="map" class="select" style="margin:0px 5px;">
32
+                            <option value="-1">--选择地区--</option>
33
+                            <option value="0" {eq name="$Request.param.map" value="0"}selected{/eq}>全国</option>
29 34
                             {eyou:foreach name='$pro_list' item='field1'}
30
-                            <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
35
+                            <option value="{$field1.id}" {eq name="$Request.param.map" value="$field1.id"}selected{/eq}>{$field1.name}</option>
31 36
                             {/eyou:foreach}
32
-
33 37
                         </select>
34 38
                     </div>
39
+
40
+
35 41
                     <div class="sDiv2">
36 42
                         <input type="text" size="30" name="keywords" value="{$Request.param.keywords}" class="qsbox" placeholder="名称搜索...">
37 43
                         <input type="submit" class="btn" value="搜索">
@@ -214,6 +220,11 @@
214 220
         $('#searchForm select[name=type]').change(function(){
215 221
             $('#searchForm').submit();
216 222
         });
223
+
224
+        $('#searchForm select[name=map]').change(function(){
225
+            $('#searchForm').submit();
226
+        });
227
+
217 228
     });
218 229
 
219 230
     /**

+ 943
- 0
application/admin/template/zcwd_position/add.htm Целия файл

@@ -0,0 +1,943 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="bodystyle" style="overflow-y: scroll;">
4
+<div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
5
+<div id="append_parent"></div>
6
+<div id="ajaxwaitid"></div>
7
+<div class="page min-hg-c-10">
8
+    <form class="form-horizontal" id="post_form" action="{:url('ZcwdPosition/add')}" method="post">
9
+        <div class="ncap-form-default">
10
+
11
+
12
+            <dl class="row">
13
+                <dt class="tit">
14
+                    <label for="type">申报专业</label>
15
+                </dt>
16
+                <dd class="opt">
17
+                    <!--<label class="curpoin"><input type="radio" id="type{$field1.id}" name="type" value="{$field1.id}" onclick="TypeSwitch({$field1.id});">{$field1.name}</label>
18
+                    -->
19
+                    <?php
20
+
21
+                    /*
22
+                     * <select name="type" class="select" style="margin:0px 5px;height:30px;">
23
+                        <option value="">--选择地区--</option>
24
+                        {eyou:foreach name='$pro_list' item='field1'}
25
+                        <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
26
+                        {/eyou:foreach}
27
+                    </select>
28
+                     */
29
+
30
+                    ?>
31
+
32
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
33
+                        <option value="">--选择申报专业--</option>
34
+                        {eyou:foreach name='$pos_list' item='field1'}
35
+                        <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.title}</option>
36
+                        {/eyou:foreach}
37
+                    </select>
38
+
39
+                    <span style="margin-left: 14px;">地区范围: <font id="map_desc">全国</font></span>
40
+
41
+                    <script>
42
+                        $(function(){
43
+                            $("#selectTest").change(function(e){
44
+                                console.log($(this).val());
45
+
46
+                                //发送ajax 请求地区数据
47
+                                $.ajax({
48
+                                    type:'POST',
49
+                                    url:"{:url('ZcwdPosition/getMap', ['_ajax'=>1])}",
50
+                                    data:{
51
+                                        id: $(this).val()
52
+                                        ,_ajax:1
53
+                                    },
54
+                                    success:function(res){
55
+                                        $('#map_desc').html(res.data);
56
+                                    }
57
+                                });
58
+
59
+
60
+
61
+                            });
62
+                        });
63
+                    </script>
64
+
65
+                    <span class="err"></span>
66
+                    <p class="notic"></p>
67
+                </dd>
68
+            </dl>
69
+
70
+
71
+            <dl class="row">
72
+                <dt class="tit"> <label for="title"><em>*</em>申报等级</label> </dt>
73
+                <dd class="opt">
74
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
75
+                        <option value="0">初级助理工程师</option>
76
+                        <option value="1">初级技术员</option>
77
+                        <option value="2">中级</option>
78
+                        <option value="3">品牌中级</option>
79
+                        <option value="4">副高级</option>
80
+                    </select>
81
+                </dd>
82
+            </dl>
83
+
84
+
85
+            <?php
86
+
87
+            /*
88
+             * 字段模板
89
+             * <dl class="row">
90
+                <dt class="tit"> <label for="title"><em>*</em>年龄区间:</label> </dt>
91
+                <dd class="opt">
92
+                    <input type="text" name="title" id="title" onkeyup="DetectionTitleRepeat(this);" class="input-txt" autocomplete="off" value="">
93
+                    <span style="">助理工程师,技术员</span>
94
+                    <span class="err"></span>
95
+                    <p class="notic2 red" id="title_tips">
96
+                    </p>
97
+                </dd>
98
+            </dl>
99
+             */
100
+
101
+            ?>
102
+
103
+            <hr/>
104
+            <b>基本要求设置:</b>
105
+
106
+            <dl class="row">
107
+                <dt class="tit"> <label for="title"><em>*</em>年龄区间:</label> </dt>
108
+                <dd class="opt">
109
+
110
+                    <span style="" id="ega-b">
111
+                        <label class="curpoin">
112
+                            <input type="radio"  name="ega" value="0" checked>年龄不限制</label>
113
+                        &nbsp;&nbsp;
114
+                        <label class="curpoin">
115
+                            <input type="radio"  name="ega" value="1">年龄限制</label>
116
+                    </span>
117
+
118
+
119
+                    <span id="ega_input" style="display:none; margin-left: 15px !important;text-align: center;">
120
+                        <input style="width:50px !important;" type="number" name="ega[]" id="ega333" class="input-txt" autocomplete="off" value="23">
121
+                        &nbsp;&nbsp;-&nbsp;&nbsp;
122
+                        <input style="width:50px !important;" type="number" name="ega[]" id="ega333" class="input-txt" autocomplete="off" value="60">&nbsp;
123
+                        岁
124
+                    </span>
125
+
126
+                    <script>
127
+                        $(function(){
128
+                            $('#ega-b input[name="ega"]').change(function (){
129
+                                console.log("fdfd");
130
+
131
+                                if($(this).val() == 1){
132
+                                    $('#ega_input').show();
133
+                                }else{
134
+                                    $('#ega_input').hide();
135
+                                }
136
+                            });
137
+                        });
138
+
139
+                    </script>
140
+
141
+                    <span class="err"></span>
142
+                    <p class="notic2 red" id="title_tips">
143
+                    </p>
144
+                </dd>
145
+            </dl>
146
+
147
+
148
+            <dl class="row">
149
+                <dt class="tit"> <label for="title"><em>*</em>专业要求</label> </dt>
150
+                <dd class="opt">
151
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;width:130px;">
152
+                        <option value="0">不限制</option>
153
+                        <option value="0">中专</option>
154
+                        <option value="1">高技</option>
155
+                        <option value="1">大专</option>
156
+                        <option value="2">本科</option>
157
+                        <option value="3">硕士</option>
158
+                        <option value="3">博士</option>
159
+                    </select>
160
+                    以上
161
+                </dd>
162
+            </dl>
163
+
164
+            <dl class="row">
165
+                <dt class="tit"> <label for="title"><em>*</em>学校类型</label> </dt>
166
+                <dd class="opt">
167
+                    <label class="curpoin">
168
+                        <input type="radio"  name="school" value="0" checked>不限制</label>
169
+                    &nbsp;&nbsp;
170
+                    <label class="curpoin">
171
+                        <input type="radio"  name="school" value="1">全日制</label>
172
+                    &nbsp;&nbsp;
173
+                    <label class="curpoin">
174
+                        <input type="radio"  name="school" value="2">非全日制</label>
175
+                </dd>
176
+            </dl>
177
+
178
+
179
+            <dl class="row">
180
+                <dt class="tit"> <label for="title"><em>*</em>毕业时间:</label> </dt>
181
+                <dd class="opt">
182
+
183
+                    <span style="" id="bysj-b">
184
+                        <label class="curpoin">
185
+                            <input type="radio"  name="bysj" value="0" checked>不限制</label>
186
+                        &nbsp;&nbsp;
187
+                        <label class="curpoin">
188
+                            <input type="radio"  name="bysj" value="1">限制</label>
189
+                    </span>
190
+
191
+
192
+
193
+                    <span id="bysj_input" style="display:none; margin-left: 15px !important;text-align: center;">
194
+                         >=
195
+                        <input style="width:50px !important;" type="number" name="bysj[]" id="bysj333" class="input-txt" autocomplete="off" value="1">
196
+                        &nbsp;年
197
+                    </span>
198
+
199
+                    <script>
200
+                        $(function(){
201
+                            $('#bysj-b input[name="bysj"]').change(function (){
202
+                                console.log("fdfd");
203
+
204
+                                if($(this).val() == 1){
205
+                                    $('#bysj_input').show();
206
+                                }else{
207
+                                    $('#bysj_input').hide();
208
+                                }
209
+                            });
210
+                        });
211
+
212
+                    </script>
213
+
214
+                    <span class="err"></span>
215
+                    <p class="notic2 red" id="title_tips">
216
+                    </p>
217
+                </dd>
218
+            </dl>
219
+
220
+
221
+            <hr/>
222
+            <b>设置前置条件:</b>
223
+
224
+
225
+
226
+            <hr/>
227
+            <b>其他:</b>
228
+
229
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_1">
230
+                <dt class="tit"> <label>主题背景</label> </dt>
231
+                <dd class="opt">
232
+                    <div class="tab-pane" id="tab_imgupload">
233
+                        <table class="table table-bordered">
234
+                            <tbody>
235
+                            <tr>
236
+                                <td >
237
+                                    <div class="sort-list">
238
+                                        <div class="images_upload">
239
+                                        </div>
240
+                                    </div>
241
+                                    <a href="javascript:void(0);" onClick="GetUploadify(30,'','allimg','imgupload_call_back');" class="img-upload b-img-upload mb15" title="点击上传">
242
+                                        <div class="y-line"></div>
243
+                                        <div class="x-line"></div>
244
+                                    </a>
245
+                                </td>
246
+                            </tr>
247
+                            </tbody>
248
+                        </table>
249
+                    </div>
250
+                    <!-- 上传图片显示的样板 start -->
251
+                    <div class="images_upload_tpl none">
252
+                        <div class="images_upload ic">
253
+                            <div class="ic">
254
+                                <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
255
+                                    <div class='icaction' style="display: none">
256
+                                        <span class="load_images" onclick="">
257
+                                            <a href="javascript:void(0);" style="color: white">
258
+                                                <i class='fa fa-search-plus'></i>大图
259
+                                            </a>
260
+                                        </span>
261
+                                        <span class="load_images" onclick="">
262
+                                            <i class='fa fa-file-text-o'></i>信息
263
+                                        </span>
264
+                                    </div>
265
+                                    <div class='cover-bg' style="display: none"></div>
266
+                                    <img src="__STATIC__/admin/images/add-button.jpg"/>
267
+                                     <a class="delect" href="javascript:void(0);" title="删除"></a>
268
+                                </div>
269
+
270
+                                <div class="load_input" data-showOrHide="hide">
271
+                                    <input type="hidden"/>
272
+                                    <span class="span_input"> <input type="hidden"/> </span>
273
+                                    <textarea placeholder="请输入标题..." style="height: 28px;"></textarea>
274
+                                    <textarea placeholder="请输入链接网址..." style="height: 28px;"></textarea>
275
+                                    <textarea placeholder="广告注释:支持HTML代码" style="height: 64px;"></textarea>
276
+                                    <div class="operation">
277
+                                        <a href="javascript:void(0)">&nbsp;&nbsp;</a>
278
+                                        <a href="javascript:void(0)">&nbsp;&nbsp;</a>
279
+                                        <a style="width: 32%;" href="javascript:void(0);">&nbsp;&nbsp;</a>
280
+                                    </div>
281
+                                 </div>    
282
+                            </div>
283
+                        </div>
284
+                    </div>
285
+                    <!-- 上传图片显示的样板 end -->
286
+                </dd>
287
+            </dl>
288
+
289
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_2">
290
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
291
+                <dd class="opt">
292
+                    <input type="text" name="video_litpic" id="video_litpic" class="input-txt">
293
+                    <input type="file" id="courseware_file" data-type='local' onchange="upload_video_litpic_1615775137(this)" style="display: none;">
294
+                    {eq name="$WeappOpen.qny_open" value="1"}
295
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_qiniu" onclick="$('#courseware_file').attr('data-type', 'qiniu').trigger('click');">七牛云上传</a>
296
+                    {/eq}
297
+                    {eq name="$WeappOpen.oss_open" value="1"}
298
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_oss" onclick="$('#courseware_file').attr('data-type', 'oss').trigger('click');">oss上传</a>
299
+                    {/eq}
300
+                    {eq name="$WeappOpen.cos_open" value="1"}
301
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a>
302
+                    {/eq}
303
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green " id="upload_video_litpic_local" onclick="$('#courseware_file').attr('data-type', 'local').trigger('click');">本地上传</a>
304
+                    <input type="hidden" id="OpenPreviewVideoUrl" value="{:url('ZcwdPosition/open_preview_video')}">
305
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="PreviewVideo" onclick="OpenPreviewVideo();">预览</a>
306
+                </dd>
307
+            </dl>
308
+
309
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_3">
310
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
311
+                <dd class="opt">
312
+                    <textarea rows="5" cols="60" id="html_intro" name="html_intro" style="height: 200px;"></textarea>
313
+                    <span class="err"></span>
314
+                    <p class="notic"></p>
315
+                </dd>
316
+            </dl>
317
+
318
+            <dl class="row">
319
+                <dt class="tit">
320
+                    <label>备注信息</label>
321
+                </dt>
322
+                <dd class="opt">          
323
+                    <textarea rows="5" cols="60" id="intro" name="intro" style="height:60px;"></textarea>
324
+                    <span class="err"></span>
325
+                    <p class="notic"></p>
326
+                </dd>
327
+            </dl> 
328
+
329
+            <div class="bot"><a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a></div>
330
+        </div>
331
+    </form>
332
+</div>
333
+
334
+<script type="text/javascript">
335
+    var SelectedType = 1;
336
+    $(function() {
337
+        // 新增时,广告类型默认选中图片类型
338
+        $('#type1').prop('checked', 'checked');
339
+        // 新增时,默认显示图片上传
340
+        $('#1615775137_1').show();
341
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
342
+        VideoLitpicValue('#video_litpic');
343
+    });
344
+
345
+    // 切换广告类型
346
+    function TypeSwitch(typeValue) {
347
+        // 隐藏全部类型内容
348
+        $('.1615775137_dl').hide();
349
+        // 显示指定类型内容
350
+        $('#1615775137_'+typeValue).show();
351
+        // 切换类型后设置为当前切换的类型
352
+        SelectedType = typeValue;
353
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
354
+        VideoLitpicValue('#video_litpic');
355
+    }
356
+
357
+    // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
358
+    function VideoLitpicValue(obj) {
359
+        // 获取广告内容(多媒体为播放链接)
360
+        // var video_litpic = $(obj).val();
361
+        // 判断隐藏/显示预览按钮if (2 == SelectedType && video_litpic)
362
+        if (2 == SelectedType) {
363
+            $('#PreviewVideo').show();
364
+        } else {
365
+            $('#PreviewVideo').hide();
366
+        }
367
+    }
368
+
369
+    // 打开预览视频
370
+    function OpenPreviewVideo() {
371
+        // 获取视频链接
372
+        var video_litpic = $('#video_litpic').val();
373
+        if (video_litpic == '') {
374
+            $('#video_litpic').focus();
375
+            showErrorMsg('请先上传视频');
376
+            return false;
377
+        }
378
+
379
+        /* 视频链接后缀验证处理 */
380
+        var fileExt = video_litpic.substr(video_litpic.lastIndexOf('.')).toLowerCase();
381
+        var fileExt = judgeExt(fileExt);
382
+        if (fileExt == -1) {
383
+            $('#video_litpic').focus();
384
+            showErrorMsg('不支持的视频格式,可在附件设置中修改');
385
+            return false;
386
+        }
387
+        /* END */
388
+
389
+        /* 视频链接是否存在斜杠处理 */
390
+        var fileInfo = video_litpic.lastIndexOf('/');
391
+        if (fileInfo == -1) {
392
+            $('#video_litpic').focus();
393
+            showErrorMsg('视频链接不完整,无法正常预览');
394
+            return false;
395
+        }
396
+        /* END */
397
+
398
+        // 打开视频播放
399
+        $.ajax({
400
+            type : 'post',
401
+            url  : $('#OpenPreviewVideoUrl').val(),
402
+            data : {video_litpic: video_litpic},
403
+            dataType : 'json',
404
+            success : function(res) {
405
+                if (1 == res.code) {
406
+                    var PreviewVideo = "<video style='width:100%; height:100%;' src='"+res.url+"' controls preload='auto' oncontextmenu='return fase' autoplay></video>";
407
+                    layer.open({
408
+                        type: 1,
409
+                        title: false,
410
+                        fixed: true, //不固定
411
+                        shadeClose: false,
412
+                        shade: layer_shade,
413
+                        area: ['80%', '80%'],
414
+                        content: PreviewVideo
415
+                    });
416
+                } else {
417
+                    showErrorMsg(res.msg);
418
+                }
419
+            },
420
+            error: function(e) {
421
+                showErrorAlert(e.responseText);
422
+            }
423
+        });
424
+    }
425
+
426
+    // 上传媒体文件
427
+    function upload_video_litpic_1615775137(e) {
428
+        var data_type = $(e).attr('data-type');
429
+        if ('qiniu' == data_type) {
430
+            // 七牛云上传
431
+            upload_video_litpic_qiniu(e);
432
+        } else if ('oss' == data_type) {
433
+             // OSS上传
434
+            upload_video_litpic_oss(e);
435
+        } else if ('cos' == data_type) {
436
+             // COS上传
437
+            upload_video_litpic_cos(e);
438
+        } else {
439
+            // 本地上传
440
+            upload_video_litpic_local(e);
441
+        }
442
+    }
443
+
444
+    // 七牛云上传
445
+    function upload_video_litpic_qiniu(e) {
446
+        // 获取文件路径名
447
+        var file = $(e)[0].files[0];
448
+
449
+        // 验证上传格式
450
+        var fileName = file.name;
451
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
452
+        var ext = judgeExt(fileExt);
453
+        if (ext == -1) {
454
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
455
+            return false;
456
+        }
457
+
458
+        // 验证上传大小
459
+        var size = "{$upload_max_filesize}";
460
+        if (file.size > size) {
461
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
462
+            return false;
463
+        }
464
+
465
+        // 执行上传
466
+        layer_loading('上传本地');
467
+        $.ajax({
468
+            type: 'POST',
469
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
470
+            data: {_ajax: 1},
471
+            dataType: "JSON",
472
+            success: function(res1) {
473
+                if (1 == res1.code) {
474
+                    var token  = res1.data.token;
475
+                    var formData = new FormData();
476
+                    formData.append('file', file);
477
+                    formData.append('token', token);
478
+
479
+                    fileName = res1.data.filePath + fileExt;
480
+                    formData.append('key', fileName);
481
+                    $.ajax({
482
+                        url: res1.data.uphost,
483
+                        type: 'POST',
484
+                        dataType: 'JSON',
485
+                        data: formData,
486
+                        timeout: 1200000,
487
+                        cache: false,
488
+                        processData: false,
489
+                        contentType: false,
490
+                        xhr: function () {
491
+                            myXhr = $.ajaxSettings.xhr();
492
+                            if (myXhr.upload) {
493
+                                myXhr.upload.addEventListener('progress', function(e){
494
+                                    var curr = e.loaded;
495
+                                    var total = e.total;
496
+                                    process = parseInt(curr / total * 100);
497
+                                    $("#upload_video_litpic_qiniu").text('上传中...'+process+"%");
498
+                                });
499
+                            }
500
+                            return myXhr;
501
+                        },
502
+                        success: function(res2) {
503
+                            layer.closeAll();
504
+                            $("#upload_video_litpic_qiniu").text('上传成功');
505
+                            setTimeout(function() {
506
+                                $('#upload_video_litpic_qiniu').text('七牛云上传');
507
+                            }, 2000);
508
+                            var video_url = res1.data.domain + "/" + res2.key;
509
+                            $("#video_litpic").val(video_url);
510
+                        },
511
+                        error: function(e) {
512
+                            layer.closeAll();
513
+                            showErrorMsg(e.responseText);
514
+                            return false;
515
+                        }
516
+                    });
517
+                } else {
518
+                    layer.closeAll();
519
+                    showErrorMsg(res1.msg);
520
+                }
521
+            },
522
+            error: function(e) {
523
+                layer.closeAll();
524
+                showErrorMsg(e.responseText);
525
+            }
526
+        });
527
+    }
528
+
529
+    // 阿里云OSS上传
530
+    function upload_video_litpic_oss(e) {
531
+        // 获取文件路径名
532
+        var file = $(e)[0].files[0];
533
+
534
+        // 验证上传格式
535
+        var fileName = file.name;
536
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
537
+        var ext = judgeExt(fileExt);
538
+        if (ext == -1) {
539
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
540
+            return false;
541
+        }
542
+
543
+        // 验证上传大小
544
+        var size = "{$upload_max_filesize}";
545
+        if (file.size > size) {
546
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
547
+            return false;
548
+        }
549
+
550
+        // 执行上传
551
+        layer_loading('上传阿里云OSS');
552
+        $.ajax({
553
+            type: 'POST',
554
+            url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
555
+            data: {_ajax: 1},
556
+            dataType: "JSON",
557
+            success: function(res1){
558
+                if (1 == res1.code){
559
+                    fileName = res1.data.filePath + fileExt;
560
+                    //组装发送数据
561
+                    var request = new FormData();
562
+                    request.append("OSSAccessKeyId",res1.data.accessid);
563
+                    request.append("policy",res1.data.policy);
564
+                    request.append("Signature",res1.data.signature);
565
+                    request.append("key",fileName);
566
+                    request.append("success_action_status",201);
567
+                    request.append('file', file);
568
+
569
+                    $.ajax({
570
+                        url : res1.data.host,
571
+                        data : request,
572
+                        processData: false,
573
+                        cache: false,
574
+                        contentType: false,
575
+                        dataType: 'xml',
576
+                        type : 'post',
577
+                        xhr: function () {
578
+                            myXhr = $.ajaxSettings.xhr();
579
+                            if (myXhr.upload) {
580
+                                myXhr.upload.addEventListener('progress', function(e){
581
+                                    var curr = e.loaded;
582
+                                    var total = e.total;
583
+                                    var process = parseInt(curr / total * 100);
584
+                                    $("#upload_video_litpic_oss").text('上传中...'+process+"%");
585
+                                });
586
+                            }
587
+                            return myXhr;
588
+                        },
589
+                        success : function(data) {
590
+                            layer.closeAll();
591
+                            var res = $(data).find('PostResponse');
592
+                            if (res) {
593
+                                var key = res.find('Key').text();
594
+                                $("#upload_video_litpic_oss").text('上传成功');
595
+                                setTimeout(function() {
596
+                                    $('#upload_video_litpic_oss').text('oss上传');
597
+                                }, 2000);
598
+                                var video_url = res1.data.domain + "/" + key;
599
+                                $("#video_litpic").val(video_url);
600
+                            } else {
601
+                                $("#upload_video_litpic_oss").text('上传失败');
602
+                                setTimeout(function() {
603
+                                    $('#upload_video_litpic_oss').text('oss上传');
604
+                                }, 2000);
605
+                            }
606
+                        },
607
+                        error : function(e) {
608
+                            layer.closeAll();
609
+                            console.log(e.responseText);
610
+                        }
611
+                    });
612
+                } else {
613
+                    layer.closeAll();
614
+                    showErrorMsg(res1.msg);
615
+                }
616
+            },
617
+            error: function(e) {
618
+                layer.closeAll();
619
+                showErrorMsg(e.responseText);
620
+            }
621
+        });
622
+    }
623
+
624
+    // 腾讯云COS上传
625
+    function upload_video_litpic_cos(e) {
626
+        // 获取文件路径名
627
+        var file = $(e)[0].files[0];
628
+
629
+        // 验证上传格式
630
+        var fileName = file.name;
631
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
632
+        var ext = judgeExt(fileExt);
633
+        if (ext == -1) {
634
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
635
+            return false;
636
+        }
637
+
638
+        // 验证上传大小
639
+        var size = "{$upload_max_filesize}";
640
+        if (file.size > size) {
641
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
642
+            return false;
643
+        }
644
+
645
+        // 上传参数
646
+        var formData = new FormData();
647
+            formData.append('file', file);
648
+            formData.append('file_ext', fileExt);
649
+
650
+        // 执行上传
651
+        $.ajax({
652
+            type: 'post',
653
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
654
+            data: formData,
655
+            contentType: false,
656
+            processData: false,
657
+            dataType: 'json',
658
+            xhr: function () {
659
+                myXhr = $.ajaxSettings.xhr();
660
+                if (myXhr.upload) {
661
+                    myXhr.upload.addEventListener('progress', function(e){
662
+                        var curr = e.loaded;
663
+                        var total = e.total;
664
+                        process = parseInt(curr / total * 100);
665
+                        if (100 == process) {
666
+                            process = 99;
667
+                            layer_loading('上传腾讯云');
668
+                        }
669
+                        $("#upload_video_litpic_cos").text('上传中...'+process+"%");
670
+                        
671
+                    });
672
+                }
673
+                return myXhr;
674
+            },
675
+            success: function(res) {
676
+                layer.closeAll();
677
+                if (1 == res.code) {
678
+                    $("#video_litpic").val(res.data.url);
679
+                    $("#upload_video_litpic_cos").text('上传成功');
680
+                } else {
681
+                    $("#upload_video_litpic_cos").text('上传失败');
682
+                }
683
+                setTimeout(function() {
684
+                    $('#upload_video_litpic_cos').text('cos上传');
685
+                }, 2000);
686
+            },
687
+            error: function(e) {
688
+                layer.closeAll();
689
+                showErrorMsg(e.responseText);
690
+            }
691
+        });
692
+    }
693
+
694
+    // 本地上传
695
+    function upload_video_litpic_local(e) {
696
+        // 获取文件路径名
697
+        var file = $(e)[0].files[0];
698
+
699
+        // 验证上传格式
700
+        var fileName = file.name;
701
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
702
+        var ext = judgeExt(fileExt);
703
+        if (ext == -1) {
704
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
705
+            return false;
706
+        }
707
+
708
+        // 验证上传大小
709
+        var size = "{$upload_max_filesize}";
710
+        if (file.size > size) {
711
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
712
+            return false;
713
+        }
714
+
715
+        // 定义上传数据
716
+        var formData = new FormData();
717
+        formData.append('file', file);
718
+
719
+        // 执行上传
720
+        layer_loading('上传本地');
721
+        $.ajax({
722
+            type: 'post',
723
+            url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
724
+            data: formData,
725
+            contentType: false,
726
+            processData: false,
727
+            dataType: 'json',
728
+            xhr: function () {
729
+                myXhr = $.ajaxSettings.xhr();
730
+                if (myXhr.upload) {
731
+                    myXhr.upload.addEventListener('progress', function(e){
732
+                        var curr = e.loaded;
733
+                        var total = e.total;
734
+                        process = parseInt(curr / total * 100);
735
+                        $("#upload_video_litpic_local").html('上传中...'+process+"%");
736
+                    });
737
+                }
738
+                return myXhr;
739
+            },
740
+            success: function (res) {
741
+                layer.closeAll();
742
+                $("#upload_video_litpic_local").html('上传成功');
743
+                setTimeout(function() {
744
+                    $('#upload_video_litpic_local').html('本地上传');
745
+                }, 2000);
746
+                if ("SUCCESS" == res.state) {
747
+                    $("#video_litpic").val(res.url);
748
+                } else {
749
+                    showErrorMsg(res.msg);
750
+                }
751
+            }
752
+        });
753
+    }
754
+
755
+    // 验证格式
756
+    function judgeExt(ext) {
757
+        var type = "{$media_type}";
758
+        var extArr = [];
759
+        extArr = type.split("|");
760
+        var ext = ext.replace(".","");
761
+        return extArr.indexOf(ext);
762
+    }
763
+</script>
764
+
765
+<script type="text/javascript">
766
+	var parentObj = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
767
+    // 勾选新窗口打开链接
768
+    function CheckedTarget(t){
769
+        if ($(t).is(':checked')) {
770
+            $(t).parent().find('input[name="img_target[]"]').val(1);
771
+        }else{
772
+            $(t).parent().find('input[name="img_target[]"]').val(0);
773
+        }
774
+    }
775
+    // 鼠标事件,加载查看大图和更新图片
776
+    function upimgMouseover(obj)
777
+    {
778
+        $(obj).find('div.icaction').show();
779
+        $(obj).find('div.cover-bg').show();
780
+    }
781
+    function upimgMouseout(obj)
782
+    {
783
+        $(obj).find('div.icaction').hide();
784
+        $(obj).find('div.cover-bg').hide();
785
+    }
786
+
787
+    // 检测广告名称是否存在重复
788
+    function DetectionTitleRepeat(obj) {
789
+        // 当前广告ID
790
+        var id = 0;
791
+        // 传入的广告名称
792
+        var title = $(obj).val();
793
+        // 执行检测
794
+        $.ajax({
795
+            type: 'post',
796
+            url : "{:url('ZcwdPosition/detection_title_repeat', ['_ajax'=>1])}",
797
+            data: {id: id, title: title},
798
+            dataType: 'json',
799
+            success: function(res) {
800
+                if (0 == res.code) {
801
+                    $('#title_tips').show().html(res.msg);
802
+                } else {
803
+                    $('#title_tips').hide().html('');
804
+                }
805
+            },
806
+            error: function(e){
807
+                layer.closeAll();
808
+                showErrorAlert(e.responseText);
809
+            }
810
+        });
811
+    }
812
+
813
+    // 判断输入框是否为空
814
+    function checkForm(){
815
+        if($('input[name=title]').val() == ''){
816
+            layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
817
+            return false;
818
+        }
819
+        layer_loading('正在处理');
820
+        $.ajax({
821
+            type : 'post',
822
+            url : "{:url('ZcwdPosition/add', ['_ajax'=>1])}",
823
+            data : $('#post_form').serialize(),
824
+            dataType : 'json',
825
+            success : function(res) {
826
+                layer.closeAll();
827
+                if (1 == res.code) {
828
+                    var _parent = parent;
829
+                    _parent.layer.close(parentObj);
830
+                    _parent.layer.msg(res.msg, {icon: 1, shade: layer_shade, time: 1000}, function() {
831
+                        _parent.window.location.reload();
832
+                    });
833
+                } else {
834
+                    showErrorMsg(res.msg);
835
+                }
836
+            },
837
+            error: function(e) {
838
+                layer.closeAll();
839
+                showErrorAlert(e.responseText);
840
+            }
841
+        });
842
+    }
843
+
844
+    // 显示信息输入框
845
+    function ShowInput(id) {
846
+        var obj = $("#"+id+"_ShowInput");
847
+        var showOrHide = obj.attr('data-showOrHide');
848
+        if ('hide' == showOrHide) {
849
+            obj.show().attr('data-showOrHide', 'show');
850
+        } else {
851
+            obj.hide().attr('data-showOrHide', 'hide');
852
+        }
853
+    }
854
+
855
+    // 隐藏信息输入
856
+    function HideInput(id) {
857
+        $("#"+id+"_ShowInput").hide().attr('data-showOrHide', 'hide');
858
+    }
859
+
860
+    // 上传图集相册回调函数
861
+    function imgupload_call_back(paths){
862
+        var last_div = $(".images_upload_tpl").html();
863
+        var inputs   = $('.span_input input');
864
+        var timestamp = 0;
865
+
866
+        for (var i=0; i<paths.length; i++){
867
+            // 生成新的时间戳
868
+            timestamp = (new Date()).getTime();
869
+            // 插入一个 新图片
870
+            $(".images_upload:eq(0)").before(last_div);
871
+            // 处理他的链接地址
872
+            $(".images_upload:eq(0)").find('span:eq(0)').attr('onclick',"Images('"+paths[i]+"', 900, 600);");
873
+            // 处理信息显示隐藏按钮
874
+            $(".images_upload:eq(0)").find('span:eq(1)').attr('onclick', "ShowInput('"+timestamp+"');");
875
+            // 处理他的图片路径
876
+            $(".images_upload:eq(0)").find('img').attr('src',paths[i]);
877
+            // 处理删除按钮
878
+            $(".images_upload:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr(this, '"+paths[i]+"', 0);");
879
+            // 处理图片信息框ID
880
+            $(".images_upload:eq(0)").find('.load_input:eq(0)').attr('id', timestamp+'_ShowInput');
881
+
882
+            // 处理图片路径及隐藏域
883
+            if (inputs.length > '0') {
884
+                // 修改隐藏域,提交ID隐藏域
885
+                $(".images_upload:eq(0)").find('input:eq(0)').attr('name','img_id[]').attr('value',''); 
886
+                // 修改隐藏域,提交图片隐藏域
887
+                $(".span_input:eq(0)").find('input:eq(0)').attr('name','img_litpic[]').attr('value',paths[i]);
888
+                // 提交标题
889
+                $(".images_upload:eq(0)").find('textarea:eq(0)').attr('name','img_title[]');
890
+                // 提交跳转链接
891
+                $(".images_upload:eq(0)").find('textarea:eq(1)').attr('name','img_links[]');
892
+                // 处理内容描述
893
+                $(".images_upload:eq(0)").find('textarea:eq(2)').attr('name','img_intro[]');
894
+                // 提交新窗口选项
895
+                $(".images_upload:eq(0)").find('div.operation a:eq(0)').html("<label><input type='checkbox' title='在新窗口打开' onclick='CheckedTarget(this)'/>新窗口<input type='hidden' name='img_target[]' value='0'></label>");
896
+                // 处理收回按钮
897
+                $(".images_upload:eq(0)").find('div.operation a:eq(2)').attr('onclick', "HideInput('"+timestamp+"');").attr('title', "收回").html('<i style="font-size:16px;" class="fa fa-angle-double-up"></i>');
898
+            }
899
+        }
900
+    }
901
+
902
+    // 上传之后删除组图input
903
+    function ClearPicArr(obj,path)
904
+    {
905
+        $(obj).parent().parent().parent().remove(); // 删除完服务器的, 再删除 html上的图片
906
+        $.ajax({
907
+            type:'POST',
908
+            url:"{:url('Uploadimgnew/delupload')}",
909
+            data:{action:"del", filename:path, _ajax:1},
910
+            success:function(){}
911
+        }); 
912
+    }
913
+
914
+    // 代码调用js
915
+    function copyToClipBoard(id) {
916
+        var adstr = "{eyou:ad aid='" + id + "'}\r\n   <a href='{$"+"field.links}' {$"+"field.target}><img src='{$"+"field.litpic}' alt='{$"+"field.title}' /></a>\r\n{/eyou:ad";
917
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 ad 调用:</dd>'
918
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:80px;">' + adstr + '}</textarea>'
919
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将对应标签代码复制并粘贴到对应模板文件中!</dd></dl></div>'
920
+        layer.open({
921
+            title: '代码调用',
922
+            type: 1,
923
+            shade: layer_shade,
924
+            skin: 'layui-layer-demo',
925
+            area: ['480px', '240px'], //宽高
926
+            content: contentdiv
927
+        });
928
+    }
929
+
930
+    // 图集相册的拖动排序相关 js
931
+    $( ".sort-list" ).sortable({
932
+        start: function( event, ui) {
933
+        
934
+        }
935
+        ,stop: function( event, ui ) {
936
+
937
+        }
938
+    });
939
+    //因为他们要拖动,所以尽量设置他们的文字不能选择。  
940
+    // $( ".sort-list" ).disableSelection();
941
+</script>
942
+
943
+{include file="public/footer" /}

+ 835
- 0
application/admin/template/zcwd_position/edit.htm Целия файл

@@ -0,0 +1,835 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="ad_postion bodystyle" style="overflow-y: scroll;">
4
+<div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
5
+<div id="append_parent"></div>
6
+<div id="ajaxwaitid"></div>
7
+<div class="page min-hg-c-10">
8
+    <form class="form-horizontal" id="post_form" action="{:url('ZcwdPosition/edit')}" method="post">
9
+        <div class="ncap-form-default">
10
+            <dl class="row">
11
+                <dt class="tit"> <label for="title"><em>*</em>职称名称</label> </dt>
12
+                <dd class="opt">
13
+                    <input type="text" name="title" value="{$field.title}" id="title" onkeyup="DetectionTitleRepeat(this);" class="input-txt" autocomplete="off">
14
+                    <span class="err"></span>
15
+                    <p class="notic2 red" id="title_tips"></p>
16
+                </dd>
17
+            </dl>
18
+
19
+            <dl class="row">
20
+                <dt class="tit"> <label for="type">选择地区</label> </dt>
21
+                <dd class="opt">
22
+                    <select name="type" class="select" style="margin:0px 5px;height:30px;">
23
+                        <option value="">--选择地区--</option>
24
+
25
+                        {eyou:foreach name='$pro_list' item='field1'}
26
+                        <option value="{$field1.id}" {eq name="$curr_id" value="$field1.id"}selected{/eq}>{$field1.name}</option>
27
+                        {/eyou:foreach}
28
+
29
+                    </select>
30
+                </dd>
31
+            </dl>
32
+
33
+            <!--暂时找不到控制显示隐藏的地方-->
34
+            <dl class="row 1615775137_dl" style="display: block;" id="1615775137_1" style="z-index: 2">
35
+                <dt class="tit"> <label>主题背景</label> </dt>
36
+                <dd class="opt">
37
+                    <div class="tab-pane" id="tab_imgupload">
38
+                        <table class="table table-bordered">
39
+                            <tbody>
40
+                            <tr>
41
+                                <td>
42
+                                    <div class="sort-list">
43
+                                        {volist name="ad_data" id="vo" key="k"}
44
+                                            {eq name="$vo.media_type" value="1"}
45
+                                                <div class="images_upload">
46
+                                                    <div class="ic">
47
+                                                        <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
48
+                                                            <div class='icaction' style="display: none" >
49
+                                                                <span class="load_images" onclick="Images('{$vo['litpic']}', 900, 600);">
50
+                                                                    <a href="javascript:void(0);" style="color:white">
51
+                                                                        <i class='fa fa-search-plus'></i>大图
52
+                                                                    </a>
53
+                                                                </span>
54
+                                                                <span class="load_images" onclick="LoadImagesId('{$vo['id']}');">
55
+                                                                    <i class='fa fa-photo'></i>更换
56
+                                                                </span>
57
+                                                                <span class="load_images" onclick="ShowInput('{$vo['id']}');">
58
+                                                                    <i class='fa fa-file-text-o'></i>信息
59
+                                                                </span>
60
+                                                            </div>
61
+                                                            <div class='cover-bg' style="display: none" ></div>
62
+                                                            <img id="{$vo['id']}_Id" src="{$vo['litpic']}"/>
63
+                                                            {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
64
+                                                                <a class="delect" href="javascript:void(0);" onclick="ClearPicArr(this,'{$vo['litpic']}','{$vo['id']}');" title="删除">
65
+                                                                </a>
66
+                                                            {/if}
67
+                                                        </div>
68
+                                                        
69
+                                                        <div class="load_input" id="{$vo['id']}_ShowInput" data-showOrHide="hide">
70
+                                                            <input type="hidden" name="img_id[]" value="{$vo['id']}"/>
71
+                                                            <span class="span_input">
72
+                                                                <input type="hidden" id="{$vo['id']}_Litpic" name="img_litpic[]" value="{$vo['litpic']}"/>
73
+                                                            </span>
74
+                                                            <textarea name="img_title[]" placeholder="请输入标题..." style="height: 28px;">{$vo.title}</textarea>
75
+                                                            <textarea name="img_links[]" placeholder="请输入链接网址..." style="height: 28px;">{$vo.links}</textarea>
76
+                                                            <textarea name="img_intro[]" placeholder="广告注释:支持HTML代码" style="height: 64px;">{$vo.intro}</textarea>
77
+                                                            <div class="operation">
78
+                                                                <a href="javascript:void(0);">
79
+                                                                    <label>
80
+                                                                        <input type="checkbox" {eq name="$vo['target']" value="1"} checked="checked" {/eq} title="在新窗口打开" onclick="CheckedTarget(this)"/>新窗口
81
+                                                                        <input type="hidden" name="img_target[]" value="{$vo['target']}">
82
+                                                                    </label>
83
+                                                                </a>
84
+                                                                <a href="javascript:void(0);" onclick="copyToClipBoard({$vo['id']});">
85
+                                                                    <i class="fa fa-file-code-o"></i>标签调用
86
+                                                                </a>
87
+                                                                <a onclick="HideInput('{$vo['id']}');" style="width: 32%;" href="javascript:void(0);" title="收回"><i style="font-size:16px;" class="fa fa-angle-double-up"></i></a>
88
+                                                            </div>
89
+                                                        </div>
90
+                                                    </div>
91
+                                                </div>
92
+                                            {/eq}
93
+                                        {/volist}
94
+                                        <div class="images_upload"></div>
95
+                                    </div> 
96
+                                    {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
97
+                                        <a href="javascript:void(0);" onClick="GetUploadify(30,'','allimg','imgupload_call_back');" class="img-upload b-img-upload mb15" title="点击上传">
98
+                                            <div class="y-line"></div>
99
+                                            <div class="x-line"></div>
100
+                                        </a>
101
+                                    {/if}
102
+                                    <input type="hidden" id="ImagesId">
103
+                                </td>
104
+                            </tr>
105
+                            </tbody>
106
+                        </table>
107
+                    </div>
108
+                    <!-- 上传图片显示的样板 start -->
109
+                    <div class="images_upload_tpl none">
110
+                        <div class="images_upload ic">
111
+                            <div class="ic">
112
+                                <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
113
+                                    <div class='icaction' style="display: none">
114
+                                        <span class="load_images" onclick="">
115
+                                            <a href="javascript:void(0);" style="color: white">
116
+                                                <i class='fa fa-search-plus'></i>大图
117
+                                            </a>
118
+                                        </span>
119
+                                        <span class="load_images" onclick="">
120
+                                            <i class='fa fa-file-text-o'></i>信息
121
+                                        </span>
122
+                                    </div>
123
+                                    <div class='cover-bg' style="display: none"></div>
124
+                                    <img src="__STATIC__/admin/images/add-button.jpg"/>
125
+                                    <a class="delect" href="javascript:void(0);" title="删除"></a>
126
+                                </div>
127
+
128
+                                <div class="load_input" data-showOrHide="hide">
129
+                                    <input type="hidden"/>
130
+                                    <span class="span_input"> <input type="hidden"/> </span>
131
+                                    <textarea placeholder="请输入标题..." style="height: 28px;"></textarea>
132
+                                    <textarea placeholder="请输入链接网址..." style="height: 28px;"></textarea>
133
+                                    <textarea placeholder="广告注释:支持HTML代码" style="height: 64px;"></textarea>
134
+                                    <div class="operation">
135
+                                        <a href="javascript:void(0);">&nbsp;&nbsp;</a>
136
+                                        <a href="javascript:void(0);">&nbsp;&nbsp;</a>
137
+                                        <a style="width: 32%;" href="javascript:void(0);">&nbsp;&nbsp;</a>
138
+                                    </div> 
139
+                                </div>
140
+                            </div>
141
+                        </div>
142
+                    </div>
143
+                    <!-- 上传图片显示的样板 end -->
144
+                </dd>
145
+            </dl>
146
+
147
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_2" style="z-index: 2">
148
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
149
+                <dd class="opt">
150
+                    <input type="hidden" name="video_id" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.id}" {/eq} class="input-txt">
151
+                    <input type="text" name="video_litpic" id="video_litpic" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.litpic}" {/eq} class="input-txt">
152
+                    <input type="file" id="courseware_file" data-type='local' onchange="upload_video_litpic_1615775137(this)" style="display: none;">
153
+                    {eq name="$WeappOpen.qny_open" value="1"}
154
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_qiniu" onclick="$('#courseware_file').attr('data-type', 'qiniu').trigger('click');">七牛云上传</a>
155
+                    {/eq}
156
+                    {eq name="$WeappOpen.oss_open" value="1"}
157
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_oss" onclick="$('#courseware_file').attr('data-type', 'oss').trigger('click');">oss上传</a>
158
+                    {/eq}
159
+                    {eq name="$WeappOpen.cos_open" value="1"}
160
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a>
161
+                    {/eq}
162
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green " id="upload_video_litpic_local" onclick="$('#courseware_file').attr('data-type', 'local').trigger('click');">本地上传</a>
163
+                    <input type="hidden" id="OpenPreviewVideoUrl" value="{:url('ZcwdPosition/open_preview_video')}">
164
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="PreviewVideo" onclick="OpenPreviewVideo();">预览</a>
165
+                </dd>
166
+            </dl>
167
+
168
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_3" style="z-index: 2">
169
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
170
+                <dd class="opt">
171
+                    <input type="hidden" name="html_id" {eq name="$ad_data.0.media_type" value="3"} value="{$ad_data.0.id}" {/eq} class="input-txt">
172
+                    <textarea rows="5" cols="60" id="html_intro" name="html_intro" style="height: 200px;">{eq name="$ad_data.0.media_type" value="3"}{$ad_data.0.intro}{/eq}</textarea>
173
+                    <span class="err"></span>
174
+                    <p class="notic"></p>
175
+                </dd>
176
+            </dl>
177
+
178
+            <dl class="row">
179
+                <dt class="tit">
180
+                    <label>备注信息</label>
181
+                </dt>
182
+                <dd class="opt">          
183
+                    <textarea rows="5" cols="60" id="intro" name="intro" style="height:60px;">{$field.intro}</textarea>
184
+                    <span class="err"></span>
185
+                    <p class="notic"></p>
186
+                </dd>
187
+            </dl>
188
+
189
+            <div class="bot">
190
+                <input type="hidden" name="id" id="1615775137_id" value="{$field.id}">
191
+                <a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a>
192
+            </div>
193
+        </div>
194
+    </form>
195
+</div>
196
+
197
+<script type="text/javascript">
198
+    var SelectedType = '{$field.type}';
199
+    $(function() {
200
+        // 新增时,广告类型默认选中图片类型
201
+        // $('#type'+SelectedType).prop('checked', 'checked');
202
+        // 新增时,默认显示图片上传
203
+        $('#1615775137_'+SelectedType).show();
204
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
205
+        VideoLitpicValue('#video_litpic');
206
+    });
207
+
208
+    // 切换广告类型
209
+    function TypeSwitch(typeValue) {
210
+        // 隐藏全部类型内容
211
+        $('.1615775137_dl').hide();
212
+        // 显示指定类型内容
213
+        $('#1615775137_'+typeValue).show();
214
+        // 切换类型后设置为当前切换的类型
215
+        SelectedType = typeValue;
216
+        
217
+        // var ad_type = '{$field.type}';
218
+        // if (typeValue != ad_type) {
219
+        //     // 切换至不同类型则显示
220
+        //     $('.notic2').show();
221
+        // } else {
222
+        //     // 切换至相同类型则隐藏
223
+        //     $('.notic2').hide();
224
+        // }
225
+    }
226
+
227
+    // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
228
+    function VideoLitpicValue(obj) {
229
+        // 获取广告内容(多媒体为播放链接)
230
+        // var video_litpic = $(obj).val();
231
+        // 判断隐藏显示预览按钮if (2 == SelectedType && video_litpic)
232
+        if (2 == SelectedType) {
233
+            $('#PreviewVideo').show();
234
+        } else {
235
+            $('#PreviewVideo').hide();
236
+        }
237
+    }
238
+
239
+    // 打开预览视频
240
+    function OpenPreviewVideo() {
241
+        // 获取视频链接
242
+        var video_litpic = $('#video_litpic').val();
243
+        if (video_litpic == '') {
244
+            $('#video_litpic').focus();
245
+            showErrorMsg('请先上传视频');
246
+            return false;
247
+        }
248
+
249
+        /* 视频链接后缀验证处理 */
250
+        var fileExt = video_litpic.substr(video_litpic.lastIndexOf('.')).toLowerCase();
251
+        var fileExt = judgeExt(fileExt);
252
+        if (fileExt == -1) {
253
+            $('#video_litpic').focus();
254
+            showErrorMsg('不支持的视频格式,可在附件设置中修改');
255
+            return false;
256
+        }
257
+        /* END */
258
+
259
+        /* 视频链接是否存在斜杠处理 */
260
+        var fileInfo = video_litpic.lastIndexOf('/');
261
+        if (fileInfo == -1) {
262
+            $('#video_litpic').focus();
263
+            showErrorMsg('视频链接不完整,无法正常预览');
264
+            return false;
265
+        }
266
+        /* END */
267
+
268
+        // 打开视频播放
269
+        $.ajax({
270
+            type : 'post',
271
+            url  : $('#OpenPreviewVideoUrl').val(),
272
+            data : {video_litpic: video_litpic},
273
+            dataType : 'json',
274
+            success : function(res) {
275
+                if (1 == res.code) {
276
+                    var PreviewVideo = "<video style='width:100%; height:100%;' src='"+res.url+"' controls preload='auto' oncontextmenu='return fase' autoplay></video>";
277
+                    layer.open({
278
+                        type: 1,
279
+                        title: false,
280
+                        fixed: true, //不固定
281
+                        shadeClose: false,
282
+                        shade: layer_shade,
283
+                        area: ['80%', '80%'],
284
+                        content: PreviewVideo
285
+                    });
286
+                } else {
287
+                    showErrorMsg(res.msg);
288
+                }
289
+            },
290
+            error: function(e) {
291
+                showErrorAlert(e.responseText);
292
+            }
293
+        });
294
+    }
295
+
296
+    // 上传媒体文件
297
+    function upload_video_litpic_1615775137(e) {
298
+        var data_type = $(e).attr('data-type');
299
+        if ('qiniu' == data_type) {
300
+            // 七牛云上传
301
+            upload_video_litpic_qiniu(e);
302
+        } else if ('oss' == data_type) {
303
+             // OSS上传
304
+            upload_video_litpic_oss(e);
305
+        } else if ('cos' == data_type) {
306
+             // COS上传
307
+            upload_video_litpic_cos(e);
308
+        } else {
309
+            // 本地上传
310
+            upload_video_litpic_local(e);
311
+        }
312
+    }
313
+
314
+    // 七牛云上传
315
+    function upload_video_litpic_qiniu(e) {
316
+        // 获取文件路径名
317
+        var file = $(e)[0].files[0];
318
+
319
+        // 验证上传格式
320
+        var fileName = file.name;
321
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
322
+        var ext = judgeExt(fileExt);
323
+        if (ext == -1) {
324
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
325
+            return false;
326
+        }
327
+
328
+        // 验证上传大小
329
+        var size = "{$upload_max_filesize}";
330
+        if (file.size > size) {
331
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
332
+            return false;
333
+        }
334
+
335
+        // 执行上传
336
+        layer_loading('上传七牛云');
337
+        $.ajax({
338
+            type: 'POST',
339
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
340
+            data: {_ajax: 1},
341
+            dataType: "JSON",
342
+            success: function(res1) {
343
+                if (1 == res1.code) {
344
+                    var token  = res1.data.token;
345
+                    var formData = new FormData();
346
+                    formData.append('file', file);
347
+                    formData.append('token', token);
348
+
349
+                    fileName = res1.data.filePath + fileExt;
350
+                    formData.append('key', fileName);
351
+                    $.ajax({
352
+                        url: res1.data.uphost,
353
+                        type: 'POST',
354
+                        dataType: 'JSON',
355
+                        data: formData,
356
+                        timeout: 1200000,
357
+                        cache: false,
358
+                        processData: false,
359
+                        contentType: false,
360
+                        xhr: function () {
361
+                            myXhr = $.ajaxSettings.xhr();
362
+                            if (myXhr.upload) {
363
+                                myXhr.upload.addEventListener('progress', function(e){
364
+                                    var curr = e.loaded;
365
+                                    var total = e.total;
366
+                                    process = parseInt(curr / total * 100);
367
+                                    $("#upload_video_litpic_qiniu").text('上传中...'+process+"%");
368
+                                });
369
+                            }
370
+                            return myXhr;
371
+                        },
372
+                        success: function(res2) {
373
+                            layer.closeAll();
374
+                            $("#upload_video_litpic_qiniu").text('上传成功');
375
+                            setTimeout(function() {
376
+                                $('#upload_video_litpic_qiniu').text('七牛云上传');
377
+                            }, 2000);
378
+                            var video_url = res1.data.domain + "/" + res2.key;
379
+                            $("#video_litpic").empty().val(video_url);
380
+                        },
381
+                        error: function(e) {
382
+                            layer.closeAll();
383
+                            showErrorMsg(e.responseText);
384
+                            return false;
385
+                        }
386
+                    });
387
+                } else {
388
+                    layer.closeAll();
389
+                    showErrorMsg(res1.msg);
390
+                }
391
+            },
392
+            error: function(e) {
393
+                layer.closeAll();
394
+                showErrorMsg(e.responseText);
395
+            }
396
+        });
397
+    }
398
+
399
+    // 阿里云OSS上传
400
+    function upload_video_litpic_oss(e) {
401
+        // 获取文件路径名
402
+        var file = $(e)[0].files[0];
403
+        
404
+        // 验证上传格式
405
+        var fileName = file.name;
406
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
407
+        var ext = judgeExt(fileExt);
408
+        if (ext == -1) {
409
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
410
+            return false;
411
+        }
412
+
413
+        // 验证上传大小
414
+        var size = "{$upload_max_filesize}";
415
+        if (file.size > size) {
416
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
417
+            return false;
418
+        }
419
+
420
+        // 执行上传
421
+        layer_loading('上传阿里云OSS');
422
+        $.ajax({
423
+            type: 'POST',
424
+            url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
425
+            data: {_ajax: 1},
426
+            dataType: "JSON",
427
+            success: function(res1){
428
+                if (1 == res1.code){
429
+                    fileName = res1.data.filePath + fileExt;
430
+                    //组装发送数据
431
+                    var request = new FormData();
432
+                    request.append("OSSAccessKeyId",res1.data.accessid);
433
+                    request.append("policy",res1.data.policy);
434
+                    request.append("Signature",res1.data.signature);
435
+                    request.append("key",fileName);
436
+                    request.append("success_action_status",201);
437
+                    request.append('file', file);
438
+
439
+                    $.ajax({
440
+                        url : res1.data.host,
441
+                        data : request,
442
+                        processData: false,
443
+                        cache: false,
444
+                        contentType: false,
445
+                        dataType: 'xml',
446
+                        type : 'post',
447
+                        xhr: function () {
448
+                            myXhr = $.ajaxSettings.xhr();
449
+                            if (myXhr.upload) {
450
+                                myXhr.upload.addEventListener('progress', function(e){
451
+                                    var curr = e.loaded;
452
+                                    var total = e.total;
453
+                                    var process = parseInt(curr / total * 100);
454
+                                    $("#upload_video_litpic_oss").text('上传中...'+process+"%");
455
+                                });
456
+                            }
457
+                            return myXhr;
458
+                        },
459
+                        success : function(data) {
460
+                            layer.closeAll();
461
+                            var res = $(data).find('PostResponse');
462
+                            if (res) {
463
+                                var key = res.find('Key').text();
464
+                                $("#upload_video_litpic_oss").text('上传成功');
465
+                                setTimeout(function() {
466
+                                    $('#upload_video_litpic_oss').text('oss上传');
467
+                                }, 2000);
468
+                                var video_url = res1.data.domain + "/" + key;
469
+                                $("#video_litpic").val(video_url);
470
+                            } else {
471
+                                $("#upload_video_litpic_oss").text('上传失败');
472
+                                setTimeout(function() {
473
+                                    $('#upload_video_litpic_oss').text('oss上传');
474
+                                }, 2000);
475
+                            }
476
+                        },
477
+                        error : function(e) {
478
+                            layer.closeAll();
479
+                            console.log(e.responseText);
480
+                        }
481
+                    });
482
+                } else {
483
+                    layer.closeAll();
484
+                    showErrorMsg(res1.msg);
485
+                }
486
+            },
487
+            error: function(e) {
488
+                layer.closeAll();
489
+                showErrorMsg(e.responseText);
490
+            }
491
+        });
492
+    }
493
+
494
+    // 腾讯云COS上传
495
+    function upload_video_litpic_cos(e) {
496
+        // 获取文件路径名
497
+        var file = $(e)[0].files[0];
498
+        
499
+        // 验证上传格式
500
+        var fileName = file.name;
501
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
502
+        var ext = judgeExt(fileExt);
503
+        if (ext == -1) {
504
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
505
+            return false;
506
+        }
507
+
508
+        // 验证上传大小
509
+        var size = "{$upload_max_filesize}";
510
+        if (file.size > size) {
511
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
512
+            return false;
513
+        }
514
+
515
+        // 上传参数
516
+        var formData = new FormData();
517
+            formData.append('file', file);
518
+            formData.append('file_ext', fileExt);
519
+
520
+        // 执行上传
521
+        $.ajax({
522
+            type: 'post',
523
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
524
+            data: formData,
525
+            contentType: false,
526
+            processData: false,
527
+            dataType: 'json',
528
+            xhr: function () {
529
+                myXhr = $.ajaxSettings.xhr();
530
+                if (myXhr.upload) {
531
+                    myXhr.upload.addEventListener('progress', function(e){
532
+                        var curr = e.loaded;
533
+                        var total = e.total;
534
+                        process = parseInt(curr / total * 100);
535
+                        if (100 == process) {
536
+                            process = 99;
537
+                            layer_loading('上传腾讯云COS');
538
+                        }
539
+                        $("#upload_video_litpic_cos").text('上传中...'+process+"%");
540
+                        
541
+                    });
542
+                }
543
+                return myXhr;
544
+            },
545
+            success: function(res) {
546
+                layer.closeAll();
547
+                if (1 == res.code) {
548
+                    $("#video_litpic").val(res.data.url);
549
+                    $("#upload_video_litpic_cos").text('上传成功');
550
+                } else {
551
+                    $("#upload_video_litpic_cos").text('上传失败');
552
+                }
553
+                setTimeout(function() {
554
+                    $('#upload_video_litpic_cos').text('cos上传');
555
+                }, 2000);
556
+            },
557
+            error: function(e) {
558
+                layer.closeAll();
559
+                showErrorMsg(e.responseText);
560
+            }
561
+        });
562
+    }
563
+
564
+    // 本地上传
565
+    function upload_video_litpic_local(e) {
566
+        // 获取文件路径名
567
+        var file = $(e)[0].files[0];
568
+
569
+        // 验证上传格式
570
+        var fileName = file.name;
571
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
572
+        var ext = judgeExt(fileExt);
573
+        if (ext == -1) {
574
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
575
+            return false;
576
+        }
577
+
578
+        // 验证上传大小
579
+        var size = "{$upload_max_filesize}";
580
+        if (file.size > size) {
581
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
582
+            return false;
583
+        }
584
+
585
+        // 定义上传数据
586
+        var formData = new FormData();
587
+        formData.append('file', file);
588
+
589
+        // 执行上传
590
+        layer_loading('上传本地');
591
+        $.ajax({
592
+            type: 'post',
593
+            url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
594
+            data: formData,
595
+            contentType: false,
596
+            processData: false,
597
+            dataType: 'json',
598
+            xhr: function () {
599
+                myXhr = $.ajaxSettings.xhr();
600
+                if (myXhr.upload) {
601
+                    myXhr.upload.addEventListener('progress', function(e){
602
+                        var curr = e.loaded;
603
+                        var total = e.total;
604
+                        process = parseInt(curr / total * 100);
605
+                        $("#upload_video_litpic_local").html('上传中...'+process+"%");
606
+                    });
607
+                }
608
+                return myXhr;
609
+            },
610
+            success: function (res) {
611
+                layer.closeAll();
612
+                $("#upload_video_litpic_local").html('上传成功');
613
+                setTimeout(function() {
614
+                    $('#upload_video_litpic_local').html('本地上传');
615
+                }, 2000);
616
+                if ("SUCCESS" == res.state) {
617
+                    $("#video_litpic").val(res.url);
618
+                } else {
619
+                    showErrorMsg(res.msg);
620
+                }
621
+            }
622
+        });
623
+    }
624
+
625
+    // 验证格式
626
+    function judgeExt(ext) {
627
+        var type = "{$media_type}";
628
+        var extArr = [];
629
+        extArr = type.split("|");
630
+        var ext = ext.replace(".","");
631
+        return extArr.indexOf(ext);
632
+    }
633
+</script>
634
+
635
+<script type="text/javascript">
636
+    // 勾选新窗口打开链接
637
+    function CheckedTarget(t){
638
+        if ($(t).is(':checked')) {
639
+            $(t).parent().find('input[name="img_target[]"]').val(1);
640
+        }else{
641
+            $(t).parent().find('input[name="img_target[]"]').val(0);
642
+        }
643
+    }
644
+    // 鼠标事件,加载查看大图和更新图片
645
+    function upimgMouseover(obj)
646
+    {
647
+        $(obj).find('div.icaction').show();
648
+        $(obj).find('div.cover-bg').show();
649
+    }
650
+    function upimgMouseout(obj)
651
+    {
652
+        $(obj).find('div.icaction').hide();
653
+        $(obj).find('div.cover-bg').hide();
654
+    }
655
+
656
+    // 检测广告名称是否存在重复
657
+    function DetectionTitleRepeat(obj) {
658
+        // 当前广告ID
659
+        var id = $('#1615775137_id').val();
660
+        // 传入的广告名称
661
+        var title = $(obj).val();
662
+        // 执行检测
663
+        $.ajax({
664
+            type: 'post',
665
+            url : "{:url('ZcwdPosition/detection_title_repeat', ['_ajax'=>1])}",
666
+            data: {id: id, title: title},
667
+            dataType: 'json',
668
+            success: function(res) {
669
+                if (0 == res.code) {
670
+                    $('#title_tips').show().html(res.msg);
671
+                } else {
672
+                    $('#title_tips').hide().html('');
673
+                }
674
+            },
675
+            error: function(e){
676
+                layer.closeAll();
677
+                showErrorAlert(e.responseText);
678
+            }
679
+        });
680
+    }
681
+
682
+    // 判断输入框是否为空
683
+    function checkForm(){
684
+        if($('input[name=title]').val() == ''){
685
+            layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
686
+            return false;
687
+        }
688
+        layer_loading('正在处理');
689
+        $.ajax({
690
+            type : 'post',
691
+            url : "{:url('ZcwdPosition/edit', ['_ajax'=>1])}",
692
+            data : $('#post_form').serialize(),
693
+            dataType : 'json',
694
+            success : function(res){
695
+                layer.closeAll();
696
+                if (res.code == 1) {
697
+                    layer.msg(res.msg, {icon: 1, shade: layer_shade, time: 1000}, function(){
698
+                        window.location.reload();
699
+                    });
700
+                } else {
701
+                    showErrorMsg(res.msg);
702
+                }
703
+            },
704
+            error: function(e){
705
+                layer.closeAll();
706
+                showErrorAlert(e.responseText);
707
+            }
708
+        });
709
+    }
710
+
711
+    // 获取点击更新图片的ID并加载隐藏域
712
+    function LoadImagesId(id){
713
+        // 加载ID到隐藏域
714
+        $('#ImagesId').val(id);
715
+        // 调用图片上传JS
716
+        GetUploadify(1,'','allimg','UpdataImages');
717
+    }
718
+
719
+    // 更新图片
720
+    function UpdataImages(path){
721
+        // 获取点击的ID
722
+        var id = $('#ImagesId').val();
723
+        // 加载图片到显示层
724
+        $("#"+id+"_Id").attr('src', path);
725
+        // 加载图片到提交的隐藏域
726
+        $("#"+id+"_Litpic").val(path);
727
+    }
728
+
729
+    // 显示信息输入框
730
+    function ShowInput(id) {
731
+        var obj = $("#"+id+"_ShowInput");
732
+        var showOrHide = obj.attr('data-showOrHide');
733
+        if ('hide' == showOrHide) {
734
+            obj.show().attr('data-showOrHide', 'show');
735
+        } else {
736
+            obj.hide().attr('data-showOrHide', 'hide');
737
+        }
738
+    }
739
+
740
+    // 隐藏信息输入
741
+    function HideInput(id) {
742
+        $("#"+id+"_ShowInput").hide().attr('data-showOrHide', 'hide');
743
+    }
744
+
745
+    // 上传图集相册回调函数
746
+    function imgupload_call_back(paths){
747
+        var last_div = $(".images_upload_tpl").html();
748
+        var inputs   = $('.span_input input');
749
+        var timestamp = 0;
750
+
751
+        // 图片数据处理
752
+        for (var i=0; i<paths.length; i++) {
753
+            // 生成新的时间戳
754
+            timestamp = (new Date()).getTime();
755
+            // 插入一个 新图片
756
+            $(".images_upload:eq(0)").before(last_div);
757
+            // 处理他的链接地址
758
+            $(".images_upload:eq(0)").find('span:eq(0)').attr('onclick', "Images('"+paths[i]+"', 900, 600);");
759
+            // 处理信息显示隐藏按钮
760
+            $(".images_upload:eq(0)").find('span:eq(1)').attr('onclick', "ShowInput('"+timestamp+"');");
761
+            // 处理他的图片路径
762
+            $(".images_upload:eq(0)").find('img').attr('src', paths[i]);
763
+            // 处理删除按钮
764
+            $(".images_upload:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr(this, '"+paths[i]+"', 0);");
765
+            // 处理图片信息框ID
766
+            $(".images_upload:eq(0)").find('.load_input:eq(0)').attr('id', timestamp+'_ShowInput');
767
+            
768
+            // 处理图片路径及隐藏域
769
+            if (inputs.length > 0) {
770
+                // 修改隐藏域
771
+                $(".images_upload:eq(0)").find('input:eq(0)').attr('name', 'img_id[]').attr('value', '');
772
+                $(".span_input:eq(0)").find('input:eq(0)').attr('name', 'img_litpic[]').attr('value', paths[i]);
773
+                // 处理标题
774
+                $(".images_upload:eq(0)").find('textarea:eq(0)').attr('name', 'img_title[]');
775
+                // 处理跳转链接
776
+                $(".images_upload:eq(0)").find('textarea:eq(1)').attr('name', 'img_links[]');
777
+                // 处理内容描述
778
+                $(".images_upload:eq(0)").find('textarea:eq(2)').attr('name', 'img_intro[]');
779
+                // 处理新窗口选项
780
+                $(".images_upload:eq(0)").find('div.operation a:eq(0)').html("<label><input type='checkbox' title='在新窗口打开' onclick='CheckedTarget(this);'/>新窗口<input type='hidden' name='img_target[]' value='0'></label>");
781
+                // 处理收回按钮
782
+                $(".images_upload:eq(0)").find('div.operation a:eq(2)').attr('onclick', "HideInput('"+timestamp+"');").attr('title', "收回").html('<i style="font-size:16px;" class="fa fa-angle-double-up"></i>');
783
+            }
784
+        }
785
+    }
786
+
787
+    // 上传之后删除组图input
788
+    function ClearPicArr(obj, path, id) {
789
+        // 删除数据库记录
790
+        $.ajax({
791
+            type:'POST',
792
+            url:"{:url('ZcwdPosition/del_imgupload')}",
793
+            data:{del_id:id,_ajax:1},
794
+            success:function(){
795
+                $(obj).parent().parent().parent().remove(); // 删除完服务器的, 再删除 html上的图片
796
+                $.ajax({
797
+                    type:'POST',
798
+                    url:"{:url('Uploadimgnew/delupload')}",
799
+                    data:{action:"del", filename:path,_ajax:1},
800
+                    success:function(){}
801
+                }); 
802
+            }
803
+        });
804
+    }
805
+
806
+    // 代码调用js
807
+    function copyToClipBoard(id) {
808
+        var adstr = "{eyou:ad aid='" + id + "'}\r\n   <a href='{$"+"field.links}' {$"+"field.target}><img src='{$"+"field.litpic}' alt='{$"+"field.title}' /></a>\r\n   广告注释:{$"+"field.intro}\r\n{/eyou:ad";
809
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 ad 调用:</dd>';
810
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:100px;">' + adstr + '}</textarea>';
811
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将对应标签代码复制并粘贴到对应模板文件中!</dd></dl></div>';
812
+        layer.open({
813
+            title: '代码调用',
814
+            type: 1,
815
+            shade: layer_shade,
816
+            skin: 'layui-layer-demo',
817
+            area: ['480px', '260px'], //宽高
818
+            content: contentdiv
819
+        });
820
+    }
821
+
822
+    // 图集相册的拖动排序相关 js
823
+    $( ".sort-list" ).sortable({
824
+        start: function( event, ui) {
825
+        
826
+        }
827
+        ,stop: function( event, ui ) {
828
+
829
+        }
830
+    });
831
+    //因为他们要拖动,所以尽量设置他们的文字不能选择。  
832
+    // $( ".sort-list" ).disableSelection();
833
+</script>
834
+
835
+{include file="public/footer" /}

+ 255
- 0
application/admin/template/zcwd_position/index.htm Целия файл

@@ -0,0 +1,255 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="bodystyle" style="cursor: default; -moz-user-select: inherit;">
4
+<div id="append_parent"></div>
5
+<div id="ajaxwaitid"></div>
6
+<div class="page min-hg-c-10">
7
+
8
+
9
+    {include file="zc_position/admin_bar" /}
10
+
11
+
12
+    <div class="flexigrid">
13
+        <div class="mDiv">
14
+            <div class="ftitle">
15
+				{if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
16
+				    {eq name="$Think.const.CONTROLLER_NAME.'@add'|is_check_access" value="1"}
17
+        				 <div class="fbutton">
18
+        				     <a href="javascript:void(0);" data-href="{:url('ZcwdPosition/add')}" onclick="openFullframe(this, '新增职称', '100%', '100%');">
19
+        				         <div class="add">
20
+        				             <span><i class="layui-icon layui-icon-addition"></i>新增职称</span>
21
+        				         </div>
22
+        				     </a>
23
+        				 </div>
24
+				    {/eq}
25
+				 {/if}
26
+            </div>
27
+            <form id="searchForm" class="navbar-form form-inline" action="{:url('ZcwdPosition/index')}" method="get" onsubmit="layer_loading('正在处理');">
28
+                {$searchform.hidden|default=''}
29
+                <div class="sDiv">
30
+                    <div class="sDiv2">
31
+                        <select name="type" class="select" style="margin:0px 5px;">
32
+                            <option value="">--选择地区--</option>
33
+
34
+                            {eyou:foreach name='$pro_list' item='field1'}
35
+                            <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
36
+                            {/eyou:foreach}
37
+
38
+                        </select>
39
+                    </div>
40
+                    <div class="sDiv2">
41
+                        <input type="text" size="30" name="keywords" value="{$Request.param.keywords}" class="qsbox" placeholder="名称搜索...">
42
+                        <input type="submit" class="btn" value="搜索">
43
+						<i class="iconfont e-sousuo"></i>
44
+                    </div>
45
+                </div>
46
+            </form>
47
+        </div>
48
+
49
+        <div class="hDiv">
50
+            <div class="hDivBox">
51
+                <table cellspacing="0" cellpadding="0" style="width: 100%">
52
+                    <thead>
53
+                        <tr>
54
+                            {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
55
+                                <th class="sign w40" axis="col0">
56
+                                    <div class="tc"><input type="checkbox" class="checkAll"></div>
57
+                                </th>
58
+                            {/if}
59
+
60
+                            <th abbr="article_title" axis="col3" class="w60">
61
+                                <div class="tc">ID</div>
62
+                            </th>
63
+
64
+                            <th abbr="article_title" axis="col3">
65
+                                <div class="tl text-l10" style="width: 100%">职称名称</div>
66
+                            </th>
67
+
68
+                            <th abbr="article_title" axis="col3" class="w100">
69
+                                <div class="tc">职称地区</div>
70
+                            </th>
71
+
72
+                            <th abbr="article_title" axis="col3" class="w120">
73
+                                <div class="tc">主题图片</div>
74
+                            </th>
75
+
76
+                            <th abbr="article_time" axis="col6" class="w60">
77
+                                <div class="tc">启用</div>
78
+                            </th>
79
+
80
+                            <th axis="col1" class="w180">
81
+                                <div class="tc">操作</div>
82
+                            </th>
83
+                        </tr>
84
+                    </thead>
85
+                </table>
86
+            </div>
87
+        </div>
88
+
89
+        <div class="bDiv" style="height: auto;">
90
+            <div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
91
+                <table style="width: 100%">
92
+                    <tbody>
93
+                    {empty name="list"}
94
+                        <tr>
95
+                            <td class="no-data" align="center" axis="col0" colspan="50">
96
+                                <div class="no_row">
97
+                                    <div class="no_pic"><img src="__SKIN__/images/null-data.png"></div>
98
+                                </div>
99
+                            </td>
100
+                        </tr>
101
+                    {else/}
102
+                        {foreach name="list" item="vo" key="k" }
103
+                            <tr>
104
+                                {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
105
+                                <td class="sign">
106
+                                    <div class="w40 tc"> <input type="checkbox" name="ids[]" value="{$vo.id}"> </div>
107
+                                </td>
108
+                                {/if}
109
+                                <td>
110
+                                    <div class="tc w60">
111
+                                    {eq name='$main_lang' value='$admin_lang'}
112
+                                        {$vo.id}
113
+                                    {else /}
114
+                                        {$main_adv_list[$vo['id']]['id']|default=$vo['id']}
115
+                                    {/eq}
116
+                                    </div>
117
+                                </td>
118
+
119
+                                <td align="left" style="width:100%;">
120
+                                    <div class="tl text-l10">
121
+                                        {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
122
+                                            <a href="javascript:void(0);" data-href="{:url('ZcwdPosition/edit',array('id'=>$vo['id']))}" data-closereload="1" onclick="openFullframe(this, '编辑广告', '100%', '100%');">{$vo.title}</a>
123
+                                        {else /}
124
+                                            {$vo.title}
125
+                                        {/eq}
126
+                                    </div>
127
+                                </td>
128
+                                <td>
129
+                                    <div class="tc w100"> {$vo.type_name} </div>
130
+                                </td>
131
+                                <td>
132
+                                    <div class="tc w120">
133
+                                        <ul class="adpic">
134
+                                            {volist name="$vo.ad" id="vs" length="1" }
135
+                                                <li>
136
+                                                    <img src="{$vs.litpic}"> {eq name="$vo.type" value="1"}<span>{$vo.ad_count}</span>{/eq}
137
+                                                </li>
138
+                                            {/volist}
139
+                                        </ul>
140
+                                    </div>
141
+                                </td>
142
+                                <td>
143
+                                    <div class="tc w60">
144
+                                        {if condition="$vo['status'] eq 1"}
145
+                                            <span class="yes" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('zcwd_position','id','{$vo.id}','status',this);"{/eq} ><i class="fa fa-check-circle"></i>是</span>
146
+                                        {else /}
147
+                                            <span class="no" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('zcwd_position','id','{$vo.id}','status',this);"{/eq} ><i class="fa fa-ban"></i>否</span>
148
+                                        {/if}
149
+                                    </div>
150
+                                </td>
151
+                                <td class="operation">
152
+                                    <div class="w180 tc">
153
+                                        {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
154
+                                            <a href="javascript:void(0);" data-href="{:url('ZcwdPosition/edit',array('id'=>$vo['id']))}" data-closereload="1" class="btn blue" onclick="openFullframe(this, '编辑职称', '100%', '100%');">编辑</a> <i></i>
155
+                                        {/eq}
156
+
157
+                                        {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
158
+                                            {eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
159
+                                                <a class="btn red"  href="javascript:void(0);" data-url="{:url('ZcwdPosition/del')}" data-id="{$vo.id}" onClick="delfun(this);">删除</a>
160
+                                            {/eq} <!--<i></i>-->
161
+                                        {/if}
162
+    									
163
+                                       <!-- <a class="btn blue" href="javascript:void(0);" onclick="copyToClipBoard({$main_adv_list[$vo['id']]['id']|default=$vo['id']}, 1, {$vo['type']})">标签调用</a>-->
164
+                                    </div>
165
+                                </td>
166
+                            </tr>
167
+                        {/foreach}
168
+                    {/empty}
169
+                    </tbody>
170
+                </table>
171
+            </div>
172
+            <div class="iDiv" style="display: none;"></div>
173
+        </div>
174
+        {notempty name="list"}
175
+        <div class="tDiv">
176
+            <div class="tDiv2">
177
+                {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
178
+                    <div class="fbutton checkboxall"> <input type="checkbox" class="checkAll"> </div>
179
+                    {eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
180
+                        <div class="fbutton">
181
+                            <a onclick="batch_del(this, 'ids');" data-url="{:url('ZcwdPosition/del')}" class="layui-btn layui-btn-primary">批量删除</a>
182
+                        </div>
183
+                    {/eq}
184
+                {/if}
185
+                <!-- 分页 -->
186
+                {include file="public/page" /}
187
+            </div>
188
+            <div style="clear:both"></div>
189
+        </div>
190
+        {/notempty}
191
+    </div>
192
+</div>
193
+
194
+<script type="text/javascript">
195
+    $(function() {
196
+        $('input[name*=ids]').click(function() {
197
+            if ($('input[name*=ids]').length == $('input[name*=ids]:checked').length) {
198
+                $('.checkAll').prop('checked', 'checked');
199
+            } else {
200
+                $('.checkAll').prop('checked', false);
201
+            }
202
+        });
203
+        $('input[type=checkbox].checkAll').click(function() {
204
+            $('input[type=checkbox]').prop('checked', this.checked);
205
+        });
206
+    });
207
+    
208
+    $(document).ready(function() {
209
+        // 表格行点击选中切换
210
+        $('#flexigrid > table>tbody >tr').click(function() {
211
+            $(this).toggleClass('trSelected');
212
+        });
213
+
214
+        // 点击刷新数据
215
+        $('.fa-refresh').click(function() {
216
+            location.href = location.href;
217
+        });
218
+
219
+        $('#searchForm select[name=type]').change(function(){
220
+            $('#searchForm').submit();
221
+        });
222
+    });
223
+
224
+    /**
225
+     * 代码调用js
226
+     * @param id  id
227
+     * @param limit 条数
228
+     */
229
+    function copyToClipBoard(id, limit, type) {
230
+        var advstr = '';
231
+        if (1 == type) {
232
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   <img src='{$"+"field.litpic}' alt='{$"+"field.title}' />\r\n{/eyou:adv";
233
+        } else if (2 == type) {
234
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   <video src='{$"+"field.litpic}' controls preload='auto' oncontextmenu='return fase'></video>\r\n{/eyou:adv";
235
+        } else if (3 == type) {
236
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   {$"+"field.intro}\r\n{/eyou:adv";
237
+        }
238
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 adv 调用:</dd>';
239
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:60px;">' + advstr + '}</textarea>';
240
+        contentdiv += '<dd>JavaScript:</dd>';
241
+        contentdiv += '<dd><input type="text" style=" width:400px;" value="<script type=&quot;text/javascript&quot; src=&quot;http://' + '{$Think.server.http_host}' + '__ROOT_DIR__/index.php?m=api&amp;c=Other&amp;a=other_show&amp;pid=' + id + '&amp;row='+limit+'&quot;><\/script>"></dd>';
242
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将标签adv或JavaScript代码复制并粘贴到对应模板文件中!</dd></dl></div>';
243
+        layer.open({
244
+            title: '代码调用',
245
+            type: 1,
246
+            shade: layer_shade,
247
+            skin: 'layui-layer-demo',
248
+            area: ['480px', '280px'], //宽高
249
+            content: contentdiv
250
+        });
251
+    }
252
+
253
+</script>
254
+
255
+{include file="public/footer" /}

+ 810
- 0
application/admin/template/zczs_position/add.htm Целия файл

@@ -0,0 +1,810 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="bodystyle" style="overflow-y: scroll;">
4
+<div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
5
+<div id="append_parent"></div>
6
+<div id="ajaxwaitid"></div>
7
+<div class="page min-hg-c-10">
8
+    <form class="form-horizontal" id="post_form" action="{:url('ZczsPosition/add')}" method="post">
9
+        <div class="ncap-form-default">
10
+            <dl class="row">
11
+                <dt class="tit"> <label for="title"><em>*</em>证书名称</label> </dt>
12
+                <dd class="opt">
13
+                    <input type="text" name="title" id="title" onkeyup="DetectionTitleRepeat(this);" class="input-txt" autocomplete="off">
14
+                    <span class="err"></span>
15
+                    <p class="notic2 red" id="title_tips"></p>
16
+                </dd>
17
+            </dl>
18
+
19
+            <dl class="row" style="display:none;">
20
+                <dt class="tit">
21
+                    <label for="type">选择地区</label>
22
+                </dt>
23
+                <dd class="opt">
24
+
25
+
26
+                    <!--<label class="curpoin"><input type="radio" id="type{$field1.id}" name="type" value="{$field1.id}" onclick="TypeSwitch({$field1.id});">{$field1.name}</label>
27
+                    -->
28
+
29
+                    <?php
30
+                        /*
31
+                         * {eyou:foreach name='$pro_list' item='field1'}
32
+                    <option value="{$field1.id}" {eq name="$Request.param.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
33
+                    {/eyou:foreach}
34
+                         */
35
+                    ?>
36
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
37
+                        <option value="0">全国</option>
38
+                        <option value="1">归属地区</option>
39
+                    </select>
40
+
41
+                    <script>
42
+                        $(function(){
43
+                            $("#selectTest").change(function(e){
44
+                                console.log($(this).val());
45
+                                var v = $(this).val();
46
+                                if(v == 1){
47
+                                    $('#citychoose').show();
48
+                                }else{
49
+                                    $('#citychoose').hide();
50
+                                }
51
+                            });
52
+                        });
53
+                    </script>
54
+
55
+                    <span class="err"></span>
56
+                    <p class="notic"></p>
57
+                </dd>
58
+            </dl>
59
+
60
+            <dl class="row" id="citychoose" style="display: none;">
61
+                <dt class="tit"> <label for="title"><em>*</em>地区选择</label> </dt>
62
+                <dd class="opt">
63
+
64
+                    <!---checked-->
65
+                    {eyou:foreach name='$pro_list' item='field1'}
66
+                    <input type="checkbox" name="map[]" value="{$field1.id}" id="category{$field1.id}"/>{$field1.name}
67
+                    {/eyou:foreach}
68
+
69
+                    <span class="err"></span>
70
+                    <p class="notic2 red" id="title_tips"></p>
71
+                </dd>
72
+            </dl>
73
+
74
+
75
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_1">
76
+                <dt class="tit"> <label>主题背景</label> </dt>
77
+                <dd class="opt">
78
+                    <div class="tab-pane" id="tab_imgupload">
79
+                        <table class="table table-bordered">
80
+                            <tbody>
81
+                            <tr>
82
+                                <td >
83
+                                    <div class="sort-list">
84
+                                        <div class="images_upload">
85
+                                        </div>
86
+                                    </div>
87
+                                    <a href="javascript:void(0);" onClick="GetUploadify(30,'','allimg','imgupload_call_back');" class="img-upload b-img-upload mb15" title="点击上传">
88
+                                        <div class="y-line"></div>
89
+                                        <div class="x-line"></div>
90
+                                    </a>
91
+                                </td>
92
+                            </tr>
93
+                            </tbody>
94
+                        </table>
95
+                    </div>
96
+                    <!-- 上传图片显示的样板 start -->
97
+                    <div class="images_upload_tpl none">
98
+                        <div class="images_upload ic">
99
+                            <div class="ic">
100
+                                <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
101
+                                    <div class='icaction' style="display: none">
102
+                                        <span class="load_images" onclick="">
103
+                                            <a href="javascript:void(0);" style="color: white">
104
+                                                <i class='fa fa-search-plus'></i>大图
105
+                                            </a>
106
+                                        </span>
107
+                                        <span class="load_images" onclick="">
108
+                                            <i class='fa fa-file-text-o'></i>信息
109
+                                        </span>
110
+                                    </div>
111
+                                    <div class='cover-bg' style="display: none"></div>
112
+                                    <img src="__STATIC__/admin/images/add-button.jpg"/>
113
+                                     <a class="delect" href="javascript:void(0);" title="删除"></a>
114
+                                </div>
115
+
116
+                                <div class="load_input" data-showOrHide="hide">
117
+                                    <input type="hidden"/>
118
+                                    <span class="span_input"> <input type="hidden"/> </span>
119
+                                    <textarea placeholder="请输入标题..." style="height: 28px;"></textarea>
120
+                                    <textarea placeholder="请输入链接网址..." style="height: 28px;"></textarea>
121
+                                    <textarea placeholder="广告注释:支持HTML代码" style="height: 64px;"></textarea>
122
+                                    <div class="operation">
123
+                                        <a href="javascript:void(0)">&nbsp;&nbsp;</a>
124
+                                        <a href="javascript:void(0)">&nbsp;&nbsp;</a>
125
+                                        <a style="width: 32%;" href="javascript:void(0);">&nbsp;&nbsp;</a>
126
+                                    </div>
127
+                                 </div>    
128
+                            </div>
129
+                        </div>
130
+                    </div>
131
+                    <!-- 上传图片显示的样板 end -->
132
+                </dd>
133
+            </dl>
134
+
135
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_2">
136
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
137
+                <dd class="opt">
138
+                    <input type="text" name="video_litpic" id="video_litpic" class="input-txt">
139
+                    <input type="file" id="courseware_file" data-type='local' onchange="upload_video_litpic_1615775137(this)" style="display: none;">
140
+                    {eq name="$WeappOpen.qny_open" value="1"}
141
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_qiniu" onclick="$('#courseware_file').attr('data-type', 'qiniu').trigger('click');">七牛云上传</a>
142
+                    {/eq}
143
+                    {eq name="$WeappOpen.oss_open" value="1"}
144
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_oss" onclick="$('#courseware_file').attr('data-type', 'oss').trigger('click');">oss上传</a>
145
+                    {/eq}
146
+                    {eq name="$WeappOpen.cos_open" value="1"}
147
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a>
148
+                    {/eq}
149
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green " id="upload_video_litpic_local" onclick="$('#courseware_file').attr('data-type', 'local').trigger('click');">本地上传</a>
150
+                    <input type="hidden" id="OpenPreviewVideoUrl" value="{:url('ZczsPosition/open_preview_video')}">
151
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="PreviewVideo" onclick="OpenPreviewVideo();">预览</a>
152
+                </dd>
153
+            </dl>
154
+
155
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_3">
156
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
157
+                <dd class="opt">
158
+                    <textarea rows="5" cols="60" id="html_intro" name="html_intro" style="height: 200px;"></textarea>
159
+                    <span class="err"></span>
160
+                    <p class="notic"></p>
161
+                </dd>
162
+            </dl>
163
+
164
+            <dl class="row">
165
+                <dt class="tit">
166
+                    <label>备注信息</label>
167
+                </dt>
168
+                <dd class="opt">          
169
+                    <textarea rows="5" cols="60" id="intro" name="intro" style="height:60px;"></textarea>
170
+                    <span class="err"></span>
171
+                    <p class="notic"></p>
172
+                </dd>
173
+            </dl> 
174
+
175
+            <div class="bot"><a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a></div>
176
+        </div>
177
+    </form>
178
+</div>
179
+
180
+<script type="text/javascript">
181
+    var SelectedType = 1;
182
+    $(function() {
183
+        // 新增时,广告类型默认选中图片类型
184
+        $('#type1').prop('checked', 'checked');
185
+        // 新增时,默认显示图片上传
186
+        $('#1615775137_1').show();
187
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
188
+        VideoLitpicValue('#video_litpic');
189
+    });
190
+
191
+    // 切换广告类型
192
+    function TypeSwitch(typeValue) {
193
+        // 隐藏全部类型内容
194
+        $('.1615775137_dl').hide();
195
+        // 显示指定类型内容
196
+        $('#1615775137_'+typeValue).show();
197
+        // 切换类型后设置为当前切换的类型
198
+        SelectedType = typeValue;
199
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
200
+        VideoLitpicValue('#video_litpic');
201
+    }
202
+
203
+    // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
204
+    function VideoLitpicValue(obj) {
205
+        // 获取广告内容(多媒体为播放链接)
206
+        // var video_litpic = $(obj).val();
207
+        // 判断隐藏/显示预览按钮if (2 == SelectedType && video_litpic)
208
+        if (2 == SelectedType) {
209
+            $('#PreviewVideo').show();
210
+        } else {
211
+            $('#PreviewVideo').hide();
212
+        }
213
+    }
214
+
215
+    // 打开预览视频
216
+    function OpenPreviewVideo() {
217
+        // 获取视频链接
218
+        var video_litpic = $('#video_litpic').val();
219
+        if (video_litpic == '') {
220
+            $('#video_litpic').focus();
221
+            showErrorMsg('请先上传视频');
222
+            return false;
223
+        }
224
+
225
+        /* 视频链接后缀验证处理 */
226
+        var fileExt = video_litpic.substr(video_litpic.lastIndexOf('.')).toLowerCase();
227
+        var fileExt = judgeExt(fileExt);
228
+        if (fileExt == -1) {
229
+            $('#video_litpic').focus();
230
+            showErrorMsg('不支持的视频格式,可在附件设置中修改');
231
+            return false;
232
+        }
233
+        /* END */
234
+
235
+        /* 视频链接是否存在斜杠处理 */
236
+        var fileInfo = video_litpic.lastIndexOf('/');
237
+        if (fileInfo == -1) {
238
+            $('#video_litpic').focus();
239
+            showErrorMsg('视频链接不完整,无法正常预览');
240
+            return false;
241
+        }
242
+        /* END */
243
+
244
+        // 打开视频播放
245
+        $.ajax({
246
+            type : 'post',
247
+            url  : $('#OpenPreviewVideoUrl').val(),
248
+            data : {video_litpic: video_litpic},
249
+            dataType : 'json',
250
+            success : function(res) {
251
+                if (1 == res.code) {
252
+                    var PreviewVideo = "<video style='width:100%; height:100%;' src='"+res.url+"' controls preload='auto' oncontextmenu='return fase' autoplay></video>";
253
+                    layer.open({
254
+                        type: 1,
255
+                        title: false,
256
+                        fixed: true, //不固定
257
+                        shadeClose: false,
258
+                        shade: layer_shade,
259
+                        area: ['80%', '80%'],
260
+                        content: PreviewVideo
261
+                    });
262
+                } else {
263
+                    showErrorMsg(res.msg);
264
+                }
265
+            },
266
+            error: function(e) {
267
+                showErrorAlert(e.responseText);
268
+            }
269
+        });
270
+    }
271
+
272
+    // 上传媒体文件
273
+    function upload_video_litpic_1615775137(e) {
274
+        var data_type = $(e).attr('data-type');
275
+        if ('qiniu' == data_type) {
276
+            // 七牛云上传
277
+            upload_video_litpic_qiniu(e);
278
+        } else if ('oss' == data_type) {
279
+             // OSS上传
280
+            upload_video_litpic_oss(e);
281
+        } else if ('cos' == data_type) {
282
+             // COS上传
283
+            upload_video_litpic_cos(e);
284
+        } else {
285
+            // 本地上传
286
+            upload_video_litpic_local(e);
287
+        }
288
+    }
289
+
290
+    // 七牛云上传
291
+    function upload_video_litpic_qiniu(e) {
292
+        // 获取文件路径名
293
+        var file = $(e)[0].files[0];
294
+
295
+        // 验证上传格式
296
+        var fileName = file.name;
297
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
298
+        var ext = judgeExt(fileExt);
299
+        if (ext == -1) {
300
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
301
+            return false;
302
+        }
303
+
304
+        // 验证上传大小
305
+        var size = "{$upload_max_filesize}";
306
+        if (file.size > size) {
307
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
308
+            return false;
309
+        }
310
+
311
+        // 执行上传
312
+        layer_loading('上传本地');
313
+        $.ajax({
314
+            type: 'POST',
315
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
316
+            data: {_ajax: 1},
317
+            dataType: "JSON",
318
+            success: function(res1) {
319
+                if (1 == res1.code) {
320
+                    var token  = res1.data.token;
321
+                    var formData = new FormData();
322
+                    formData.append('file', file);
323
+                    formData.append('token', token);
324
+
325
+                    fileName = res1.data.filePath + fileExt;
326
+                    formData.append('key', fileName);
327
+                    $.ajax({
328
+                        url: res1.data.uphost,
329
+                        type: 'POST',
330
+                        dataType: 'JSON',
331
+                        data: formData,
332
+                        timeout: 1200000,
333
+                        cache: false,
334
+                        processData: false,
335
+                        contentType: false,
336
+                        xhr: function () {
337
+                            myXhr = $.ajaxSettings.xhr();
338
+                            if (myXhr.upload) {
339
+                                myXhr.upload.addEventListener('progress', function(e){
340
+                                    var curr = e.loaded;
341
+                                    var total = e.total;
342
+                                    process = parseInt(curr / total * 100);
343
+                                    $("#upload_video_litpic_qiniu").text('上传中...'+process+"%");
344
+                                });
345
+                            }
346
+                            return myXhr;
347
+                        },
348
+                        success: function(res2) {
349
+                            layer.closeAll();
350
+                            $("#upload_video_litpic_qiniu").text('上传成功');
351
+                            setTimeout(function() {
352
+                                $('#upload_video_litpic_qiniu').text('七牛云上传');
353
+                            }, 2000);
354
+                            var video_url = res1.data.domain + "/" + res2.key;
355
+                            $("#video_litpic").val(video_url);
356
+                        },
357
+                        error: function(e) {
358
+                            layer.closeAll();
359
+                            showErrorMsg(e.responseText);
360
+                            return false;
361
+                        }
362
+                    });
363
+                } else {
364
+                    layer.closeAll();
365
+                    showErrorMsg(res1.msg);
366
+                }
367
+            },
368
+            error: function(e) {
369
+                layer.closeAll();
370
+                showErrorMsg(e.responseText);
371
+            }
372
+        });
373
+    }
374
+
375
+    // 阿里云OSS上传
376
+    function upload_video_litpic_oss(e) {
377
+        // 获取文件路径名
378
+        var file = $(e)[0].files[0];
379
+
380
+        // 验证上传格式
381
+        var fileName = file.name;
382
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
383
+        var ext = judgeExt(fileExt);
384
+        if (ext == -1) {
385
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
386
+            return false;
387
+        }
388
+
389
+        // 验证上传大小
390
+        var size = "{$upload_max_filesize}";
391
+        if (file.size > size) {
392
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
393
+            return false;
394
+        }
395
+
396
+        // 执行上传
397
+        layer_loading('上传阿里云OSS');
398
+        $.ajax({
399
+            type: 'POST',
400
+            url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
401
+            data: {_ajax: 1},
402
+            dataType: "JSON",
403
+            success: function(res1){
404
+                if (1 == res1.code){
405
+                    fileName = res1.data.filePath + fileExt;
406
+                    //组装发送数据
407
+                    var request = new FormData();
408
+                    request.append("OSSAccessKeyId",res1.data.accessid);
409
+                    request.append("policy",res1.data.policy);
410
+                    request.append("Signature",res1.data.signature);
411
+                    request.append("key",fileName);
412
+                    request.append("success_action_status",201);
413
+                    request.append('file', file);
414
+
415
+                    $.ajax({
416
+                        url : res1.data.host,
417
+                        data : request,
418
+                        processData: false,
419
+                        cache: false,
420
+                        contentType: false,
421
+                        dataType: 'xml',
422
+                        type : 'post',
423
+                        xhr: function () {
424
+                            myXhr = $.ajaxSettings.xhr();
425
+                            if (myXhr.upload) {
426
+                                myXhr.upload.addEventListener('progress', function(e){
427
+                                    var curr = e.loaded;
428
+                                    var total = e.total;
429
+                                    var process = parseInt(curr / total * 100);
430
+                                    $("#upload_video_litpic_oss").text('上传中...'+process+"%");
431
+                                });
432
+                            }
433
+                            return myXhr;
434
+                        },
435
+                        success : function(data) {
436
+                            layer.closeAll();
437
+                            var res = $(data).find('PostResponse');
438
+                            if (res) {
439
+                                var key = res.find('Key').text();
440
+                                $("#upload_video_litpic_oss").text('上传成功');
441
+                                setTimeout(function() {
442
+                                    $('#upload_video_litpic_oss').text('oss上传');
443
+                                }, 2000);
444
+                                var video_url = res1.data.domain + "/" + key;
445
+                                $("#video_litpic").val(video_url);
446
+                            } else {
447
+                                $("#upload_video_litpic_oss").text('上传失败');
448
+                                setTimeout(function() {
449
+                                    $('#upload_video_litpic_oss').text('oss上传');
450
+                                }, 2000);
451
+                            }
452
+                        },
453
+                        error : function(e) {
454
+                            layer.closeAll();
455
+                            console.log(e.responseText);
456
+                        }
457
+                    });
458
+                } else {
459
+                    layer.closeAll();
460
+                    showErrorMsg(res1.msg);
461
+                }
462
+            },
463
+            error: function(e) {
464
+                layer.closeAll();
465
+                showErrorMsg(e.responseText);
466
+            }
467
+        });
468
+    }
469
+
470
+    // 腾讯云COS上传
471
+    function upload_video_litpic_cos(e) {
472
+        // 获取文件路径名
473
+        var file = $(e)[0].files[0];
474
+
475
+        // 验证上传格式
476
+        var fileName = file.name;
477
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
478
+        var ext = judgeExt(fileExt);
479
+        if (ext == -1) {
480
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
481
+            return false;
482
+        }
483
+
484
+        // 验证上传大小
485
+        var size = "{$upload_max_filesize}";
486
+        if (file.size > size) {
487
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
488
+            return false;
489
+        }
490
+
491
+        // 上传参数
492
+        var formData = new FormData();
493
+            formData.append('file', file);
494
+            formData.append('file_ext', fileExt);
495
+
496
+        // 执行上传
497
+        $.ajax({
498
+            type: 'post',
499
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
500
+            data: formData,
501
+            contentType: false,
502
+            processData: false,
503
+            dataType: 'json',
504
+            xhr: function () {
505
+                myXhr = $.ajaxSettings.xhr();
506
+                if (myXhr.upload) {
507
+                    myXhr.upload.addEventListener('progress', function(e){
508
+                        var curr = e.loaded;
509
+                        var total = e.total;
510
+                        process = parseInt(curr / total * 100);
511
+                        if (100 == process) {
512
+                            process = 99;
513
+                            layer_loading('上传腾讯云');
514
+                        }
515
+                        $("#upload_video_litpic_cos").text('上传中...'+process+"%");
516
+                        
517
+                    });
518
+                }
519
+                return myXhr;
520
+            },
521
+            success: function(res) {
522
+                layer.closeAll();
523
+                if (1 == res.code) {
524
+                    $("#video_litpic").val(res.data.url);
525
+                    $("#upload_video_litpic_cos").text('上传成功');
526
+                } else {
527
+                    $("#upload_video_litpic_cos").text('上传失败');
528
+                }
529
+                setTimeout(function() {
530
+                    $('#upload_video_litpic_cos').text('cos上传');
531
+                }, 2000);
532
+            },
533
+            error: function(e) {
534
+                layer.closeAll();
535
+                showErrorMsg(e.responseText);
536
+            }
537
+        });
538
+    }
539
+
540
+    // 本地上传
541
+    function upload_video_litpic_local(e) {
542
+        // 获取文件路径名
543
+        var file = $(e)[0].files[0];
544
+
545
+        // 验证上传格式
546
+        var fileName = file.name;
547
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
548
+        var ext = judgeExt(fileExt);
549
+        if (ext == -1) {
550
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
551
+            return false;
552
+        }
553
+
554
+        // 验证上传大小
555
+        var size = "{$upload_max_filesize}";
556
+        if (file.size > size) {
557
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
558
+            return false;
559
+        }
560
+
561
+        // 定义上传数据
562
+        var formData = new FormData();
563
+        formData.append('file', file);
564
+
565
+        // 执行上传
566
+        layer_loading('上传本地');
567
+        $.ajax({
568
+            type: 'post',
569
+            url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
570
+            data: formData,
571
+            contentType: false,
572
+            processData: false,
573
+            dataType: 'json',
574
+            xhr: function () {
575
+                myXhr = $.ajaxSettings.xhr();
576
+                if (myXhr.upload) {
577
+                    myXhr.upload.addEventListener('progress', function(e){
578
+                        var curr = e.loaded;
579
+                        var total = e.total;
580
+                        process = parseInt(curr / total * 100);
581
+                        $("#upload_video_litpic_local").html('上传中...'+process+"%");
582
+                    });
583
+                }
584
+                return myXhr;
585
+            },
586
+            success: function (res) {
587
+                layer.closeAll();
588
+                $("#upload_video_litpic_local").html('上传成功');
589
+                setTimeout(function() {
590
+                    $('#upload_video_litpic_local').html('本地上传');
591
+                }, 2000);
592
+                if ("SUCCESS" == res.state) {
593
+                    $("#video_litpic").val(res.url);
594
+                } else {
595
+                    showErrorMsg(res.msg);
596
+                }
597
+            }
598
+        });
599
+    }
600
+
601
+    // 验证格式
602
+    function judgeExt(ext) {
603
+        var type = "{$media_type}";
604
+        var extArr = [];
605
+        extArr = type.split("|");
606
+        var ext = ext.replace(".","");
607
+        return extArr.indexOf(ext);
608
+    }
609
+</script>
610
+
611
+<script type="text/javascript">
612
+	var parentObj = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
613
+    // 勾选新窗口打开链接
614
+    function CheckedTarget(t){
615
+        if ($(t).is(':checked')) {
616
+            $(t).parent().find('input[name="img_target[]"]').val(1);
617
+        }else{
618
+            $(t).parent().find('input[name="img_target[]"]').val(0);
619
+        }
620
+    }
621
+    // 鼠标事件,加载查看大图和更新图片
622
+    function upimgMouseover(obj)
623
+    {
624
+        $(obj).find('div.icaction').show();
625
+        $(obj).find('div.cover-bg').show();
626
+    }
627
+    function upimgMouseout(obj)
628
+    {
629
+        $(obj).find('div.icaction').hide();
630
+        $(obj).find('div.cover-bg').hide();
631
+    }
632
+
633
+    // 检测广告名称是否存在重复
634
+    function DetectionTitleRepeat(obj) {
635
+        // 当前广告ID
636
+        var id = 0;
637
+        // 传入的广告名称
638
+        var title = $(obj).val();
639
+        // 执行检测
640
+        $.ajax({
641
+            type: 'post',
642
+            url : "{:url('ZczsPosition/detection_title_repeat', ['_ajax'=>1])}",
643
+            data: {id: id, title: title},
644
+            dataType: 'json',
645
+            success: function(res) {
646
+                if (0 == res.code) {
647
+                    $('#title_tips').show().html(res.msg);
648
+                } else {
649
+                    $('#title_tips').hide().html('');
650
+                }
651
+            },
652
+            error: function(e){
653
+                layer.closeAll();
654
+                showErrorAlert(e.responseText);
655
+            }
656
+        });
657
+    }
658
+
659
+    // 判断输入框是否为空
660
+    function checkForm(){
661
+        if($('input[name=title]').val() == ''){
662
+            layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
663
+            return false;
664
+        }
665
+
666
+        if($('#selectTest').val() == '1'){
667
+            var checkedValues = [];
668
+            $('#post_form input[type=checkbox]:checked').each(function() {
669
+                checkedValues.push($(this).val());
670
+            });
671
+            console.log(checkedValues); // 打印选中的checkbox值
672
+            if(checkedValues.length > 0){
673
+
674
+            }else{
675
+                layer.msg('请选择地区!', {icon: 2,time: 1000});
676
+                return false;
677
+            }
678
+        }
679
+
680
+
681
+        //打印
682
+        /*console.log($('#post_form').serialize());
683
+        return false;*/
684
+
685
+
686
+        layer_loading('正在处理');
687
+        $.ajax({
688
+            type : 'post',
689
+            url : "{:url('ZczsPosition/add', ['_ajax'=>1])}",
690
+            data : $('#post_form').serialize(),
691
+            dataType : 'json',
692
+            success : function(res) {
693
+                layer.closeAll();
694
+                if (1 == res.code) {
695
+                    var _parent = parent;
696
+                    _parent.layer.close(parentObj);
697
+                    _parent.layer.msg(res.msg, {icon: 1, shade: layer_shade, time: 1000}, function() {
698
+                        _parent.window.location.reload();
699
+                    });
700
+                } else {
701
+                    showErrorMsg(res.msg);
702
+                }
703
+            },
704
+            error: function(e) {
705
+                layer.closeAll();
706
+                showErrorAlert(e.responseText);
707
+            }
708
+        });
709
+    }
710
+
711
+    // 显示信息输入框
712
+    function ShowInput(id) {
713
+        var obj = $("#"+id+"_ShowInput");
714
+        var showOrHide = obj.attr('data-showOrHide');
715
+        if ('hide' == showOrHide) {
716
+            obj.show().attr('data-showOrHide', 'show');
717
+        } else {
718
+            obj.hide().attr('data-showOrHide', 'hide');
719
+        }
720
+    }
721
+
722
+    // 隐藏信息输入
723
+    function HideInput(id) {
724
+        $("#"+id+"_ShowInput").hide().attr('data-showOrHide', 'hide');
725
+    }
726
+
727
+    // 上传图集相册回调函数
728
+    function imgupload_call_back(paths){
729
+        var last_div = $(".images_upload_tpl").html();
730
+        var inputs   = $('.span_input input');
731
+        var timestamp = 0;
732
+
733
+        for (var i=0; i<paths.length; i++){
734
+            // 生成新的时间戳
735
+            timestamp = (new Date()).getTime();
736
+            // 插入一个 新图片
737
+            $(".images_upload:eq(0)").before(last_div);
738
+            // 处理他的链接地址
739
+            $(".images_upload:eq(0)").find('span:eq(0)').attr('onclick',"Images('"+paths[i]+"', 900, 600);");
740
+            // 处理信息显示隐藏按钮
741
+            $(".images_upload:eq(0)").find('span:eq(1)').attr('onclick', "ShowInput('"+timestamp+"');");
742
+            // 处理他的图片路径
743
+            $(".images_upload:eq(0)").find('img').attr('src',paths[i]);
744
+            // 处理删除按钮
745
+            $(".images_upload:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr(this, '"+paths[i]+"', 0);");
746
+            // 处理图片信息框ID
747
+            $(".images_upload:eq(0)").find('.load_input:eq(0)').attr('id', timestamp+'_ShowInput');
748
+
749
+            // 处理图片路径及隐藏域
750
+            if (inputs.length > '0') {
751
+                // 修改隐藏域,提交ID隐藏域
752
+                $(".images_upload:eq(0)").find('input:eq(0)').attr('name','img_id[]').attr('value',''); 
753
+                // 修改隐藏域,提交图片隐藏域
754
+                $(".span_input:eq(0)").find('input:eq(0)').attr('name','img_litpic[]').attr('value',paths[i]);
755
+                // 提交标题
756
+                $(".images_upload:eq(0)").find('textarea:eq(0)').attr('name','img_title[]');
757
+                // 提交跳转链接
758
+                $(".images_upload:eq(0)").find('textarea:eq(1)').attr('name','img_links[]');
759
+                // 处理内容描述
760
+                $(".images_upload:eq(0)").find('textarea:eq(2)').attr('name','img_intro[]');
761
+                // 提交新窗口选项
762
+                $(".images_upload:eq(0)").find('div.operation a:eq(0)').html("<label><input type='checkbox' title='在新窗口打开' onclick='CheckedTarget(this)'/>新窗口<input type='hidden' name='img_target[]' value='0'></label>");
763
+                // 处理收回按钮
764
+                $(".images_upload:eq(0)").find('div.operation a:eq(2)').attr('onclick', "HideInput('"+timestamp+"');").attr('title', "收回").html('<i style="font-size:16px;" class="fa fa-angle-double-up"></i>');
765
+            }
766
+        }
767
+    }
768
+
769
+    // 上传之后删除组图input
770
+    function ClearPicArr(obj,path)
771
+    {
772
+        $(obj).parent().parent().parent().remove(); // 删除完服务器的, 再删除 html上的图片
773
+        $.ajax({
774
+            type:'POST',
775
+            url:"{:url('Uploadimgnew/delupload')}",
776
+            data:{action:"del", filename:path, _ajax:1},
777
+            success:function(){}
778
+        }); 
779
+    }
780
+
781
+    // 代码调用js
782
+    function copyToClipBoard(id) {
783
+        var adstr = "{eyou:ad aid='" + id + "'}\r\n   <a href='{$"+"field.links}' {$"+"field.target}><img src='{$"+"field.litpic}' alt='{$"+"field.title}' /></a>\r\n{/eyou:ad";
784
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 ad 调用:</dd>'
785
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:80px;">' + adstr + '}</textarea>'
786
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将对应标签代码复制并粘贴到对应模板文件中!</dd></dl></div>'
787
+        layer.open({
788
+            title: '代码调用',
789
+            type: 1,
790
+            shade: layer_shade,
791
+            skin: 'layui-layer-demo',
792
+            area: ['480px', '240px'], //宽高
793
+            content: contentdiv
794
+        });
795
+    }
796
+
797
+    // 图集相册的拖动排序相关 js
798
+    $( ".sort-list" ).sortable({
799
+        start: function( event, ui) {
800
+        
801
+        }
802
+        ,stop: function( event, ui ) {
803
+
804
+        }
805
+    });
806
+    //因为他们要拖动,所以尽量设置他们的文字不能选择。  
807
+    // $( ".sort-list" ).disableSelection();
808
+</script>
809
+
810
+{include file="public/footer" /}

+ 909
- 0
application/admin/template/zczs_position/edit.htm Целия файл

@@ -0,0 +1,909 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="ad_postion bodystyle" style="overflow-y: scroll;">
4
+<div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
5
+<div id="append_parent"></div>
6
+<div id="ajaxwaitid"></div>
7
+<div class="page min-hg-c-10">
8
+    <form class="form-horizontal" id="post_form" action="{:url('ZczsPosition/edit')}" method="post">
9
+        <div class="ncap-form-default">
10
+            <dl class="row">
11
+                <dt class="tit"> <label for="title"><em>*</em>职称名称</label> </dt>
12
+                <dd class="opt">
13
+                    <input type="text" name="title" value="{$field.title}" id="title" onkeyup="DetectionTitleRepeat(this);" class="input-txt" autocomplete="off">
14
+                    <span class="err"></span>
15
+                    <p class="notic2 red" id="title_tips"></p>
16
+                </dd>
17
+            </dl>
18
+
19
+            <dl class="row">
20
+                <dt class="tit"> <label for="type">选择地区</label> </dt>
21
+                <dd class="opt">
22
+
23
+
24
+                    <?php
25
+                    /*
26
+                     *
27
+                     * <select name="type" class="select" style="margin:0px 5px;height:30px;">
28
+                        <option value="">--选择地区--</option>
29
+
30
+                        {eyou:foreach name='$pro_list' item='field1'}
31
+                        <option value="{$field1.id}" {eq name="$curr_id" value="$field1.id"}selected{/eq}>{$field1.name}</option>
32
+                        {/eyou:foreach}
33
+
34
+                    </select>
35
+
36
+                     */
37
+
38
+                    ?>
39
+
40
+                    <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
41
+                        <option value="0" {eq name="0" value="$field.type"}selected{/eq}>全国</option>
42
+                        <option value="1" {eq name="1" value="$field.type"}selected{/eq}>归属地区</option>
43
+                    </select>
44
+
45
+                    <script>
46
+                        $(function(){
47
+                            $("#selectTest").change(function(e){
48
+                                console.log($(this).val());
49
+                                var v = $(this).val();
50
+                                if(v == 1){
51
+                                    $('#citychoose').show();
52
+                                }else{
53
+                                    $('#citychoose').hide();
54
+                                }
55
+                            });
56
+                        });
57
+                    </script>
58
+
59
+
60
+                </dd>
61
+            </dl>
62
+
63
+
64
+
65
+            <dl class="row" id="citychoose" {eq name="0" value="$field.type"}style="display: none;"{/eq}>
66
+                <dt class="tit"> <label for="title"><em>*</em>地区选择</label> </dt>
67
+                <dd class="opt">
68
+
69
+                    <!---checked  $map_list-->
70
+                    {eyou:foreach name='$pro_list' item='field1'}
71
+                    <input type="checkbox" name="map[]" value="{$field1.id}" id="category{$field1.id}"
72
+                           {$field1.is_check}
73
+                    />{$field1.name}
74
+                    {/eyou:foreach}
75
+
76
+                    <span class="err"></span>
77
+                    <p class="notic2 red" id="title_tips"></p>
78
+                </dd>
79
+            </dl>
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+            <!--暂时找不到控制显示隐藏的地方-->
88
+            <dl class="row 1615775137_dl" style="display: block;" id="1615775137_1" style="z-index: 2">
89
+                <dt class="tit"> <label>主题背景</label> </dt>
90
+                <dd class="opt">
91
+                    <div class="tab-pane" id="tab_imgupload">
92
+                        <table class="table table-bordered">
93
+                            <tbody>
94
+                            <tr>
95
+                                <td>
96
+                                    <div class="sort-list">
97
+                                        {volist name="ad_data" id="vo" key="k"}
98
+                                            {eq name="$vo.media_type" value="1"}
99
+                                                <div class="images_upload">
100
+                                                    <div class="ic">
101
+                                                        <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
102
+                                                            <div class='icaction' style="display: none" >
103
+                                                                <span class="load_images" onclick="Images('{$vo['litpic']}', 900, 600);">
104
+                                                                    <a href="javascript:void(0);" style="color:white">
105
+                                                                        <i class='fa fa-search-plus'></i>大图
106
+                                                                    </a>
107
+                                                                </span>
108
+                                                                <span class="load_images" onclick="LoadImagesId('{$vo['id']}');">
109
+                                                                    <i class='fa fa-photo'></i>更换
110
+                                                                </span>
111
+                                                                <span class="load_images" onclick="ShowInput('{$vo['id']}');">
112
+                                                                    <i class='fa fa-file-text-o'></i>信息
113
+                                                                </span>
114
+                                                            </div>
115
+                                                            <div class='cover-bg' style="display: none" ></div>
116
+                                                            <img id="{$vo['id']}_Id" src="{$vo['litpic']}"/>
117
+                                                            {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
118
+                                                                <a class="delect" href="javascript:void(0);" onclick="ClearPicArr(this,'{$vo['litpic']}','{$vo['id']}');" title="删除">
119
+                                                                </a>
120
+                                                            {/if}
121
+                                                        </div>
122
+                                                        
123
+                                                        <div class="load_input" id="{$vo['id']}_ShowInput" data-showOrHide="hide">
124
+                                                            <input type="hidden" name="img_id[]" value="{$vo['id']}"/>
125
+                                                            <span class="span_input">
126
+                                                                <input type="hidden" id="{$vo['id']}_Litpic" name="img_litpic[]" value="{$vo['litpic']}"/>
127
+                                                            </span>
128
+                                                            <textarea name="img_title[]" placeholder="请输入标题..." style="height: 28px;">{$vo.title}</textarea>
129
+                                                            <textarea name="img_links[]" placeholder="请输入链接网址..." style="height: 28px;">{$vo.links}</textarea>
130
+                                                            <textarea name="img_intro[]" placeholder="广告注释:支持HTML代码" style="height: 64px;">{$vo.intro}</textarea>
131
+                                                            <div class="operation">
132
+                                                                <a href="javascript:void(0);">
133
+                                                                    <label>
134
+                                                                        <input type="checkbox" {eq name="$vo['target']" value="1"} checked="checked" {/eq} title="在新窗口打开" onclick="CheckedTarget(this)"/>新窗口
135
+                                                                        <input type="hidden" name="img_target[]" value="{$vo['target']}">
136
+                                                                    </label>
137
+                                                                </a>
138
+                                                                <a href="javascript:void(0);" onclick="copyToClipBoard({$vo['id']});">
139
+                                                                    <i class="fa fa-file-code-o"></i>标签调用
140
+                                                                </a>
141
+                                                                <a onclick="HideInput('{$vo['id']}');" style="width: 32%;" href="javascript:void(0);" title="收回"><i style="font-size:16px;" class="fa fa-angle-double-up"></i></a>
142
+                                                            </div>
143
+                                                        </div>
144
+                                                    </div>
145
+                                                </div>
146
+                                            {/eq}
147
+                                        {/volist}
148
+                                        <div class="images_upload"></div>
149
+                                    </div> 
150
+                                    {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
151
+                                        <a href="javascript:void(0);" onClick="GetUploadify(30,'','allimg','imgupload_call_back');" class="img-upload b-img-upload mb15" title="点击上传">
152
+                                            <div class="y-line"></div>
153
+                                            <div class="x-line"></div>
154
+                                        </a>
155
+                                    {/if}
156
+                                    <input type="hidden" id="ImagesId">
157
+                                </td>
158
+                            </tr>
159
+                            </tbody>
160
+                        </table>
161
+                    </div>
162
+                    <!-- 上传图片显示的样板 start -->
163
+                    <div class="images_upload_tpl none">
164
+                        <div class="images_upload ic">
165
+                            <div class="ic">
166
+                                <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
167
+                                    <div class='icaction' style="display: none">
168
+                                        <span class="load_images" onclick="">
169
+                                            <a href="javascript:void(0);" style="color: white">
170
+                                                <i class='fa fa-search-plus'></i>大图
171
+                                            </a>
172
+                                        </span>
173
+                                        <span class="load_images" onclick="">
174
+                                            <i class='fa fa-file-text-o'></i>信息
175
+                                        </span>
176
+                                    </div>
177
+                                    <div class='cover-bg' style="display: none"></div>
178
+                                    <img src="__STATIC__/admin/images/add-button.jpg"/>
179
+                                    <a class="delect" href="javascript:void(0);" title="删除"></a>
180
+                                </div>
181
+
182
+                                <div class="load_input" data-showOrHide="hide">
183
+                                    <input type="hidden"/>
184
+                                    <span class="span_input"> <input type="hidden"/> </span>
185
+                                    <textarea placeholder="请输入标题..." style="height: 28px;"></textarea>
186
+                                    <textarea placeholder="请输入链接网址..." style="height: 28px;"></textarea>
187
+                                    <textarea placeholder="广告注释:支持HTML代码" style="height: 64px;"></textarea>
188
+                                    <div class="operation">
189
+                                        <a href="javascript:void(0);">&nbsp;&nbsp;</a>
190
+                                        <a href="javascript:void(0);">&nbsp;&nbsp;</a>
191
+                                        <a style="width: 32%;" href="javascript:void(0);">&nbsp;&nbsp;</a>
192
+                                    </div> 
193
+                                </div>
194
+                            </div>
195
+                        </div>
196
+                    </div>
197
+                    <!-- 上传图片显示的样板 end -->
198
+                </dd>
199
+            </dl>
200
+
201
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_2" style="z-index: 2">
202
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
203
+                <dd class="opt">
204
+                    <input type="hidden" name="video_id" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.id}" {/eq} class="input-txt">
205
+                    <input type="text" name="video_litpic" id="video_litpic" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.litpic}" {/eq} class="input-txt">
206
+                    <input type="file" id="courseware_file" data-type='local' onchange="upload_video_litpic_1615775137(this)" style="display: none;">
207
+                    {eq name="$WeappOpen.qny_open" value="1"}
208
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_qiniu" onclick="$('#courseware_file').attr('data-type', 'qiniu').trigger('click');">七牛云上传</a>
209
+                    {/eq}
210
+                    {eq name="$WeappOpen.oss_open" value="1"}
211
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_oss" onclick="$('#courseware_file').attr('data-type', 'oss').trigger('click');">oss上传</a>
212
+                    {/eq}
213
+                    {eq name="$WeappOpen.cos_open" value="1"}
214
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a>
215
+                    {/eq}
216
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green " id="upload_video_litpic_local" onclick="$('#courseware_file').attr('data-type', 'local').trigger('click');">本地上传</a>
217
+                    <input type="hidden" id="OpenPreviewVideoUrl" value="{:url('ZczsPosition/open_preview_video')}">
218
+                    &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="PreviewVideo" onclick="OpenPreviewVideo();">预览</a>
219
+                </dd>
220
+            </dl>
221
+
222
+            <dl class="row 1615775137_dl" style="display: none;" id="1615775137_3" style="z-index: 2">
223
+                <dt class="tit"> <label for="type">广告内容</label> </dt>
224
+                <dd class="opt">
225
+                    <input type="hidden" name="html_id" {eq name="$ad_data.0.media_type" value="3"} value="{$ad_data.0.id}" {/eq} class="input-txt">
226
+                    <textarea rows="5" cols="60" id="html_intro" name="html_intro" style="height: 200px;">{eq name="$ad_data.0.media_type" value="3"}{$ad_data.0.intro}{/eq}</textarea>
227
+                    <span class="err"></span>
228
+                    <p class="notic"></p>
229
+                </dd>
230
+            </dl>
231
+
232
+            <dl class="row">
233
+                <dt class="tit">
234
+                    <label>备注信息</label>
235
+                </dt>
236
+                <dd class="opt">          
237
+                    <textarea rows="5" cols="60" id="intro" name="intro" style="height:60px;">{$field.intro}</textarea>
238
+                    <span class="err"></span>
239
+                    <p class="notic"></p>
240
+                </dd>
241
+            </dl>
242
+
243
+            <div class="bot">
244
+                <input type="hidden" name="id" id="1615775137_id" value="{$field.id}">
245
+                <a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a>
246
+            </div>
247
+        </div>
248
+    </form>
249
+</div>
250
+
251
+<script type="text/javascript">
252
+    var SelectedType = '{$field.type}';
253
+    $(function() {
254
+        // 新增时,广告类型默认选中图片类型
255
+        // $('#type'+SelectedType).prop('checked', 'checked');
256
+        // 新增时,默认显示图片上传
257
+        $('#1615775137_'+SelectedType).show();
258
+        // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
259
+        VideoLitpicValue('#video_litpic');
260
+    });
261
+
262
+    // 切换广告类型
263
+    function TypeSwitch(typeValue) {
264
+        // 隐藏全部类型内容
265
+        $('.1615775137_dl').hide();
266
+        // 显示指定类型内容
267
+        $('#1615775137_'+typeValue).show();
268
+        // 切换类型后设置为当前切换的类型
269
+        SelectedType = typeValue;
270
+        
271
+        // var ad_type = '{$field.type}';
272
+        // if (typeValue != ad_type) {
273
+        //     // 切换至不同类型则显示
274
+        //     $('.notic2').show();
275
+        // } else {
276
+        //     // 切换至相同类型则隐藏
277
+        //     $('.notic2').hide();
278
+        // }
279
+    }
280
+
281
+    // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
282
+    function VideoLitpicValue(obj) {
283
+        // 获取广告内容(多媒体为播放链接)
284
+        // var video_litpic = $(obj).val();
285
+        // 判断隐藏显示预览按钮if (2 == SelectedType && video_litpic)
286
+        if (2 == SelectedType) {
287
+            $('#PreviewVideo').show();
288
+        } else {
289
+            $('#PreviewVideo').hide();
290
+        }
291
+    }
292
+
293
+    // 打开预览视频
294
+    function OpenPreviewVideo() {
295
+        // 获取视频链接
296
+        var video_litpic = $('#video_litpic').val();
297
+        if (video_litpic == '') {
298
+            $('#video_litpic').focus();
299
+            showErrorMsg('请先上传视频');
300
+            return false;
301
+        }
302
+
303
+        /* 视频链接后缀验证处理 */
304
+        var fileExt = video_litpic.substr(video_litpic.lastIndexOf('.')).toLowerCase();
305
+        var fileExt = judgeExt(fileExt);
306
+        if (fileExt == -1) {
307
+            $('#video_litpic').focus();
308
+            showErrorMsg('不支持的视频格式,可在附件设置中修改');
309
+            return false;
310
+        }
311
+        /* END */
312
+
313
+        /* 视频链接是否存在斜杠处理 */
314
+        var fileInfo = video_litpic.lastIndexOf('/');
315
+        if (fileInfo == -1) {
316
+            $('#video_litpic').focus();
317
+            showErrorMsg('视频链接不完整,无法正常预览');
318
+            return false;
319
+        }
320
+        /* END */
321
+
322
+        // 打开视频播放
323
+        $.ajax({
324
+            type : 'post',
325
+            url  : $('#OpenPreviewVideoUrl').val(),
326
+            data : {video_litpic: video_litpic},
327
+            dataType : 'json',
328
+            success : function(res) {
329
+                if (1 == res.code) {
330
+                    var PreviewVideo = "<video style='width:100%; height:100%;' src='"+res.url+"' controls preload='auto' oncontextmenu='return fase' autoplay></video>";
331
+                    layer.open({
332
+                        type: 1,
333
+                        title: false,
334
+                        fixed: true, //不固定
335
+                        shadeClose: false,
336
+                        shade: layer_shade,
337
+                        area: ['80%', '80%'],
338
+                        content: PreviewVideo
339
+                    });
340
+                } else {
341
+                    showErrorMsg(res.msg);
342
+                }
343
+            },
344
+            error: function(e) {
345
+                showErrorAlert(e.responseText);
346
+            }
347
+        });
348
+    }
349
+
350
+    // 上传媒体文件
351
+    function upload_video_litpic_1615775137(e) {
352
+        var data_type = $(e).attr('data-type');
353
+        if ('qiniu' == data_type) {
354
+            // 七牛云上传
355
+            upload_video_litpic_qiniu(e);
356
+        } else if ('oss' == data_type) {
357
+             // OSS上传
358
+            upload_video_litpic_oss(e);
359
+        } else if ('cos' == data_type) {
360
+             // COS上传
361
+            upload_video_litpic_cos(e);
362
+        } else {
363
+            // 本地上传
364
+            upload_video_litpic_local(e);
365
+        }
366
+    }
367
+
368
+    // 七牛云上传
369
+    function upload_video_litpic_qiniu(e) {
370
+        // 获取文件路径名
371
+        var file = $(e)[0].files[0];
372
+
373
+        // 验证上传格式
374
+        var fileName = file.name;
375
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
376
+        var ext = judgeExt(fileExt);
377
+        if (ext == -1) {
378
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
379
+            return false;
380
+        }
381
+
382
+        // 验证上传大小
383
+        var size = "{$upload_max_filesize}";
384
+        if (file.size > size) {
385
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
386
+            return false;
387
+        }
388
+
389
+        // 执行上传
390
+        layer_loading('上传七牛云');
391
+        $.ajax({
392
+            type: 'POST',
393
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
394
+            data: {_ajax: 1},
395
+            dataType: "JSON",
396
+            success: function(res1) {
397
+                if (1 == res1.code) {
398
+                    var token  = res1.data.token;
399
+                    var formData = new FormData();
400
+                    formData.append('file', file);
401
+                    formData.append('token', token);
402
+
403
+                    fileName = res1.data.filePath + fileExt;
404
+                    formData.append('key', fileName);
405
+                    $.ajax({
406
+                        url: res1.data.uphost,
407
+                        type: 'POST',
408
+                        dataType: 'JSON',
409
+                        data: formData,
410
+                        timeout: 1200000,
411
+                        cache: false,
412
+                        processData: false,
413
+                        contentType: false,
414
+                        xhr: function () {
415
+                            myXhr = $.ajaxSettings.xhr();
416
+                            if (myXhr.upload) {
417
+                                myXhr.upload.addEventListener('progress', function(e){
418
+                                    var curr = e.loaded;
419
+                                    var total = e.total;
420
+                                    process = parseInt(curr / total * 100);
421
+                                    $("#upload_video_litpic_qiniu").text('上传中...'+process+"%");
422
+                                });
423
+                            }
424
+                            return myXhr;
425
+                        },
426
+                        success: function(res2) {
427
+                            layer.closeAll();
428
+                            $("#upload_video_litpic_qiniu").text('上传成功');
429
+                            setTimeout(function() {
430
+                                $('#upload_video_litpic_qiniu').text('七牛云上传');
431
+                            }, 2000);
432
+                            var video_url = res1.data.domain + "/" + res2.key;
433
+                            $("#video_litpic").empty().val(video_url);
434
+                        },
435
+                        error: function(e) {
436
+                            layer.closeAll();
437
+                            showErrorMsg(e.responseText);
438
+                            return false;
439
+                        }
440
+                    });
441
+                } else {
442
+                    layer.closeAll();
443
+                    showErrorMsg(res1.msg);
444
+                }
445
+            },
446
+            error: function(e) {
447
+                layer.closeAll();
448
+                showErrorMsg(e.responseText);
449
+            }
450
+        });
451
+    }
452
+
453
+    // 阿里云OSS上传
454
+    function upload_video_litpic_oss(e) {
455
+        // 获取文件路径名
456
+        var file = $(e)[0].files[0];
457
+        
458
+        // 验证上传格式
459
+        var fileName = file.name;
460
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
461
+        var ext = judgeExt(fileExt);
462
+        if (ext == -1) {
463
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
464
+            return false;
465
+        }
466
+
467
+        // 验证上传大小
468
+        var size = "{$upload_max_filesize}";
469
+        if (file.size > size) {
470
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
471
+            return false;
472
+        }
473
+
474
+        // 执行上传
475
+        layer_loading('上传阿里云OSS');
476
+        $.ajax({
477
+            type: 'POST',
478
+            url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
479
+            data: {_ajax: 1},
480
+            dataType: "JSON",
481
+            success: function(res1){
482
+                if (1 == res1.code){
483
+                    fileName = res1.data.filePath + fileExt;
484
+                    //组装发送数据
485
+                    var request = new FormData();
486
+                    request.append("OSSAccessKeyId",res1.data.accessid);
487
+                    request.append("policy",res1.data.policy);
488
+                    request.append("Signature",res1.data.signature);
489
+                    request.append("key",fileName);
490
+                    request.append("success_action_status",201);
491
+                    request.append('file', file);
492
+
493
+                    $.ajax({
494
+                        url : res1.data.host,
495
+                        data : request,
496
+                        processData: false,
497
+                        cache: false,
498
+                        contentType: false,
499
+                        dataType: 'xml',
500
+                        type : 'post',
501
+                        xhr: function () {
502
+                            myXhr = $.ajaxSettings.xhr();
503
+                            if (myXhr.upload) {
504
+                                myXhr.upload.addEventListener('progress', function(e){
505
+                                    var curr = e.loaded;
506
+                                    var total = e.total;
507
+                                    var process = parseInt(curr / total * 100);
508
+                                    $("#upload_video_litpic_oss").text('上传中...'+process+"%");
509
+                                });
510
+                            }
511
+                            return myXhr;
512
+                        },
513
+                        success : function(data) {
514
+                            layer.closeAll();
515
+                            var res = $(data).find('PostResponse');
516
+                            if (res) {
517
+                                var key = res.find('Key').text();
518
+                                $("#upload_video_litpic_oss").text('上传成功');
519
+                                setTimeout(function() {
520
+                                    $('#upload_video_litpic_oss').text('oss上传');
521
+                                }, 2000);
522
+                                var video_url = res1.data.domain + "/" + key;
523
+                                $("#video_litpic").val(video_url);
524
+                            } else {
525
+                                $("#upload_video_litpic_oss").text('上传失败');
526
+                                setTimeout(function() {
527
+                                    $('#upload_video_litpic_oss').text('oss上传');
528
+                                }, 2000);
529
+                            }
530
+                        },
531
+                        error : function(e) {
532
+                            layer.closeAll();
533
+                            console.log(e.responseText);
534
+                        }
535
+                    });
536
+                } else {
537
+                    layer.closeAll();
538
+                    showErrorMsg(res1.msg);
539
+                }
540
+            },
541
+            error: function(e) {
542
+                layer.closeAll();
543
+                showErrorMsg(e.responseText);
544
+            }
545
+        });
546
+    }
547
+
548
+    // 腾讯云COS上传
549
+    function upload_video_litpic_cos(e) {
550
+        // 获取文件路径名
551
+        var file = $(e)[0].files[0];
552
+        
553
+        // 验证上传格式
554
+        var fileName = file.name;
555
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
556
+        var ext = judgeExt(fileExt);
557
+        if (ext == -1) {
558
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
559
+            return false;
560
+        }
561
+
562
+        // 验证上传大小
563
+        var size = "{$upload_max_filesize}";
564
+        if (file.size > size) {
565
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
566
+            return false;
567
+        }
568
+
569
+        // 上传参数
570
+        var formData = new FormData();
571
+            formData.append('file', file);
572
+            formData.append('file_ext', fileExt);
573
+
574
+        // 执行上传
575
+        $.ajax({
576
+            type: 'post',
577
+            url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
578
+            data: formData,
579
+            contentType: false,
580
+            processData: false,
581
+            dataType: 'json',
582
+            xhr: function () {
583
+                myXhr = $.ajaxSettings.xhr();
584
+                if (myXhr.upload) {
585
+                    myXhr.upload.addEventListener('progress', function(e){
586
+                        var curr = e.loaded;
587
+                        var total = e.total;
588
+                        process = parseInt(curr / total * 100);
589
+                        if (100 == process) {
590
+                            process = 99;
591
+                            layer_loading('上传腾讯云COS');
592
+                        }
593
+                        $("#upload_video_litpic_cos").text('上传中...'+process+"%");
594
+                        
595
+                    });
596
+                }
597
+                return myXhr;
598
+            },
599
+            success: function(res) {
600
+                layer.closeAll();
601
+                if (1 == res.code) {
602
+                    $("#video_litpic").val(res.data.url);
603
+                    $("#upload_video_litpic_cos").text('上传成功');
604
+                } else {
605
+                    $("#upload_video_litpic_cos").text('上传失败');
606
+                }
607
+                setTimeout(function() {
608
+                    $('#upload_video_litpic_cos').text('cos上传');
609
+                }, 2000);
610
+            },
611
+            error: function(e) {
612
+                layer.closeAll();
613
+                showErrorMsg(e.responseText);
614
+            }
615
+        });
616
+    }
617
+
618
+    // 本地上传
619
+    function upload_video_litpic_local(e) {
620
+        // 获取文件路径名
621
+        var file = $(e)[0].files[0];
622
+
623
+        // 验证上传格式
624
+        var fileName = file.name;
625
+        var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
626
+        var ext = judgeExt(fileExt);
627
+        if (ext == -1) {
628
+            showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
629
+            return false;
630
+        }
631
+
632
+        // 验证上传大小
633
+        var size = "{$upload_max_filesize}";
634
+        if (file.size > size) {
635
+            showErrorMsg('视频大小超过限制,可在附件设置中修改');
636
+            return false;
637
+        }
638
+
639
+        // 定义上传数据
640
+        var formData = new FormData();
641
+        formData.append('file', file);
642
+
643
+        // 执行上传
644
+        layer_loading('上传本地');
645
+        $.ajax({
646
+            type: 'post',
647
+            url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
648
+            data: formData,
649
+            contentType: false,
650
+            processData: false,
651
+            dataType: 'json',
652
+            xhr: function () {
653
+                myXhr = $.ajaxSettings.xhr();
654
+                if (myXhr.upload) {
655
+                    myXhr.upload.addEventListener('progress', function(e){
656
+                        var curr = e.loaded;
657
+                        var total = e.total;
658
+                        process = parseInt(curr / total * 100);
659
+                        $("#upload_video_litpic_local").html('上传中...'+process+"%");
660
+                    });
661
+                }
662
+                return myXhr;
663
+            },
664
+            success: function (res) {
665
+                layer.closeAll();
666
+                $("#upload_video_litpic_local").html('上传成功');
667
+                setTimeout(function() {
668
+                    $('#upload_video_litpic_local').html('本地上传');
669
+                }, 2000);
670
+                if ("SUCCESS" == res.state) {
671
+                    $("#video_litpic").val(res.url);
672
+                } else {
673
+                    showErrorMsg(res.msg);
674
+                }
675
+            }
676
+        });
677
+    }
678
+
679
+    // 验证格式
680
+    function judgeExt(ext) {
681
+        var type = "{$media_type}";
682
+        var extArr = [];
683
+        extArr = type.split("|");
684
+        var ext = ext.replace(".","");
685
+        return extArr.indexOf(ext);
686
+    }
687
+</script>
688
+
689
+<script type="text/javascript">
690
+    // 勾选新窗口打开链接
691
+    function CheckedTarget(t){
692
+        if ($(t).is(':checked')) {
693
+            $(t).parent().find('input[name="img_target[]"]').val(1);
694
+        }else{
695
+            $(t).parent().find('input[name="img_target[]"]').val(0);
696
+        }
697
+    }
698
+    // 鼠标事件,加载查看大图和更新图片
699
+    function upimgMouseover(obj)
700
+    {
701
+        $(obj).find('div.icaction').show();
702
+        $(obj).find('div.cover-bg').show();
703
+    }
704
+    function upimgMouseout(obj)
705
+    {
706
+        $(obj).find('div.icaction').hide();
707
+        $(obj).find('div.cover-bg').hide();
708
+    }
709
+
710
+    // 检测广告名称是否存在重复
711
+    function DetectionTitleRepeat(obj) {
712
+        // 当前广告ID
713
+        var id = $('#1615775137_id').val();
714
+        // 传入的广告名称
715
+        var title = $(obj).val();
716
+        // 执行检测
717
+        $.ajax({
718
+            type: 'post',
719
+            url : "{:url('ZczsPosition/detection_title_repeat', ['_ajax'=>1])}",
720
+            data: {id: id, title: title},
721
+            dataType: 'json',
722
+            success: function(res) {
723
+                if (0 == res.code) {
724
+                    $('#title_tips').show().html(res.msg);
725
+                } else {
726
+                    $('#title_tips').hide().html('');
727
+                }
728
+            },
729
+            error: function(e){
730
+                layer.closeAll();
731
+                showErrorAlert(e.responseText);
732
+            }
733
+        });
734
+    }
735
+
736
+    // 判断输入框是否为空
737
+    function checkForm(){
738
+        if($('input[name=title]').val() == ''){
739
+            layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
740
+            return false;
741
+        }
742
+
743
+        if($('#selectTest').val() == '1'){
744
+            var checkedValues = [];
745
+            $('#post_form input[type=checkbox]:checked').each(function() {
746
+                checkedValues.push($(this).val());
747
+            });
748
+            console.log(checkedValues); // 打印选中的checkbox值
749
+            if(checkedValues.length > 0){
750
+
751
+            }else{
752
+                layer.msg('请选择地区!', {icon: 2,time: 1000});
753
+                return false;
754
+            }
755
+        }
756
+
757
+        //打印
758
+        /*console.log($('#post_form').serialize());
759
+        return false;*/
760
+
761
+
762
+        layer_loading('正在处理');
763
+        $.ajax({
764
+            type : 'post',
765
+            url : "{:url('ZczsPosition/edit', ['_ajax'=>1])}",
766
+            data : $('#post_form').serialize(),
767
+            dataType : 'json',
768
+            success : function(res){
769
+                layer.closeAll();
770
+                if (res.code == 1) {
771
+                    layer.msg(res.msg, {icon: 1, shade: layer_shade, time: 1000}, function(){
772
+                        window.location.reload();
773
+                    });
774
+                } else {
775
+                    showErrorMsg(res.msg);
776
+                }
777
+            },
778
+            error: function(e){
779
+                layer.closeAll();
780
+                showErrorAlert(e.responseText);
781
+            }
782
+        });
783
+    }
784
+
785
+    // 获取点击更新图片的ID并加载隐藏域
786
+    function LoadImagesId(id){
787
+        // 加载ID到隐藏域
788
+        $('#ImagesId').val(id);
789
+        // 调用图片上传JS
790
+        GetUploadify(1,'','allimg','UpdataImages');
791
+    }
792
+
793
+    // 更新图片
794
+    function UpdataImages(path){
795
+        // 获取点击的ID
796
+        var id = $('#ImagesId').val();
797
+        // 加载图片到显示层
798
+        $("#"+id+"_Id").attr('src', path);
799
+        // 加载图片到提交的隐藏域
800
+        $("#"+id+"_Litpic").val(path);
801
+    }
802
+
803
+    // 显示信息输入框
804
+    function ShowInput(id) {
805
+        var obj = $("#"+id+"_ShowInput");
806
+        var showOrHide = obj.attr('data-showOrHide');
807
+        if ('hide' == showOrHide) {
808
+            obj.show().attr('data-showOrHide', 'show');
809
+        } else {
810
+            obj.hide().attr('data-showOrHide', 'hide');
811
+        }
812
+    }
813
+
814
+    // 隐藏信息输入
815
+    function HideInput(id) {
816
+        $("#"+id+"_ShowInput").hide().attr('data-showOrHide', 'hide');
817
+    }
818
+
819
+    // 上传图集相册回调函数
820
+    function imgupload_call_back(paths){
821
+        var last_div = $(".images_upload_tpl").html();
822
+        var inputs   = $('.span_input input');
823
+        var timestamp = 0;
824
+
825
+        // 图片数据处理
826
+        for (var i=0; i<paths.length; i++) {
827
+            // 生成新的时间戳
828
+            timestamp = (new Date()).getTime();
829
+            // 插入一个 新图片
830
+            $(".images_upload:eq(0)").before(last_div);
831
+            // 处理他的链接地址
832
+            $(".images_upload:eq(0)").find('span:eq(0)').attr('onclick', "Images('"+paths[i]+"', 900, 600);");
833
+            // 处理信息显示隐藏按钮
834
+            $(".images_upload:eq(0)").find('span:eq(1)').attr('onclick', "ShowInput('"+timestamp+"');");
835
+            // 处理他的图片路径
836
+            $(".images_upload:eq(0)").find('img').attr('src', paths[i]);
837
+            // 处理删除按钮
838
+            $(".images_upload:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr(this, '"+paths[i]+"', 0);");
839
+            // 处理图片信息框ID
840
+            $(".images_upload:eq(0)").find('.load_input:eq(0)').attr('id', timestamp+'_ShowInput');
841
+            
842
+            // 处理图片路径及隐藏域
843
+            if (inputs.length > 0) {
844
+                // 修改隐藏域
845
+                $(".images_upload:eq(0)").find('input:eq(0)').attr('name', 'img_id[]').attr('value', '');
846
+                $(".span_input:eq(0)").find('input:eq(0)').attr('name', 'img_litpic[]').attr('value', paths[i]);
847
+                // 处理标题
848
+                $(".images_upload:eq(0)").find('textarea:eq(0)').attr('name', 'img_title[]');
849
+                // 处理跳转链接
850
+                $(".images_upload:eq(0)").find('textarea:eq(1)').attr('name', 'img_links[]');
851
+                // 处理内容描述
852
+                $(".images_upload:eq(0)").find('textarea:eq(2)').attr('name', 'img_intro[]');
853
+                // 处理新窗口选项
854
+                $(".images_upload:eq(0)").find('div.operation a:eq(0)').html("<label><input type='checkbox' title='在新窗口打开' onclick='CheckedTarget(this);'/>新窗口<input type='hidden' name='img_target[]' value='0'></label>");
855
+                // 处理收回按钮
856
+                $(".images_upload:eq(0)").find('div.operation a:eq(2)').attr('onclick', "HideInput('"+timestamp+"');").attr('title', "收回").html('<i style="font-size:16px;" class="fa fa-angle-double-up"></i>');
857
+            }
858
+        }
859
+    }
860
+
861
+    // 上传之后删除组图input
862
+    function ClearPicArr(obj, path, id) {
863
+        // 删除数据库记录
864
+        $.ajax({
865
+            type:'POST',
866
+            url:"{:url('ZczsPosition/del_imgupload')}",
867
+            data:{del_id:id,_ajax:1},
868
+            success:function(){
869
+                $(obj).parent().parent().parent().remove(); // 删除完服务器的, 再删除 html上的图片
870
+                $.ajax({
871
+                    type:'POST',
872
+                    url:"{:url('Uploadimgnew/delupload')}",
873
+                    data:{action:"del", filename:path,_ajax:1},
874
+                    success:function(){}
875
+                }); 
876
+            }
877
+        });
878
+    }
879
+
880
+    // 代码调用js
881
+    function copyToClipBoard(id) {
882
+        var adstr = "{eyou:ad aid='" + id + "'}\r\n   <a href='{$"+"field.links}' {$"+"field.target}><img src='{$"+"field.litpic}' alt='{$"+"field.title}' /></a>\r\n   广告注释:{$"+"field.intro}\r\n{/eyou:ad";
883
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 ad 调用:</dd>';
884
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:100px;">' + adstr + '}</textarea>';
885
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将对应标签代码复制并粘贴到对应模板文件中!</dd></dl></div>';
886
+        layer.open({
887
+            title: '代码调用',
888
+            type: 1,
889
+            shade: layer_shade,
890
+            skin: 'layui-layer-demo',
891
+            area: ['480px', '260px'], //宽高
892
+            content: contentdiv
893
+        });
894
+    }
895
+
896
+    // 图集相册的拖动排序相关 js
897
+    $( ".sort-list" ).sortable({
898
+        start: function( event, ui) {
899
+        
900
+        }
901
+        ,stop: function( event, ui ) {
902
+
903
+        }
904
+    });
905
+    //因为他们要拖动,所以尽量设置他们的文字不能选择。  
906
+    // $( ".sort-list" ).disableSelection();
907
+</script>
908
+
909
+{include file="public/footer" /}

+ 261
- 0
application/admin/template/zczs_position/index.htm Целия файл

@@ -0,0 +1,261 @@
1
+{include file="public/layout" /}
2
+
3
+<body class="bodystyle" style="cursor: default; -moz-user-select: inherit;">
4
+<div id="append_parent"></div>
5
+<div id="ajaxwaitid"></div>
6
+<div class="page min-hg-c-10">
7
+
8
+    {include file="zc_position/admin_bar" /}
9
+
10
+
11
+    <div class="flexigrid">
12
+        <div class="mDiv">
13
+            <div class="ftitle">
14
+				{if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
15
+				    {eq name="$Think.const.CONTROLLER_NAME.'@add'|is_check_access" value="1"}
16
+        				 <div class="fbutton">
17
+        				     <a href="javascript:void(0);" data-href="{:url('ZczsPosition/add')}" onclick="openFullframe(this, '新增职称', '100%', '100%');">
18
+        				         <div class="add">
19
+        				             <span><i class="layui-icon layui-icon-addition"></i>新增证书</span>
20
+        				         </div>
21
+        				     </a>
22
+        				 </div>
23
+				    {/eq}
24
+				 {/if}
25
+            </div>
26
+            <form id="searchForm" class="navbar-form form-inline" action="{:url('ZczsPosition/index')}" method="get" onsubmit="layer_loading('正在处理');">
27
+                {$searchform.hidden|default=''}
28
+                <div class="sDiv">
29
+
30
+                    <div class="sDiv2" style="display: none;">
31
+                        <select name="map" class="select" style="margin:0px 5px;">
32
+                            <option value="-1">--选择地区--</option>
33
+                            <option value="0" {eq name="$Request.param.map" value="0"}selected{/eq}>全国</option>
34
+                            {eyou:foreach name='$pro_list' item='field1'}
35
+                            <option value="{$field1.id}" {eq name="$Request.param.map" value="$field1.id"}selected{/eq}>{$field1.name}</option>
36
+                            {/eyou:foreach}
37
+                        </select>
38
+                    </div>
39
+
40
+
41
+                    <div class="sDiv2">
42
+                        <input type="text" size="30" name="keywords" value="{$Request.param.keywords}" class="qsbox" placeholder="名称搜索...">
43
+                        <input type="submit" class="btn" value="搜索">
44
+						<i class="iconfont e-sousuo"></i>
45
+                    </div>
46
+                </div>
47
+            </form>
48
+        </div>
49
+
50
+        <div class="hDiv">
51
+            <div class="hDivBox">
52
+                <table cellspacing="0" cellpadding="0" style="width: 100%">
53
+                    <thead>
54
+                        <tr>
55
+                            {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
56
+                                <th class="sign w40" axis="col0">
57
+                                    <div class="tc"><input type="checkbox" class="checkAll"></div>
58
+                                </th>
59
+                            {/if}
60
+
61
+                            <th abbr="article_title" axis="col3" class="w60">
62
+                                <div class="tc">ID</div>
63
+                            </th>
64
+
65
+                            <th abbr="article_title" axis="col3">
66
+                                <div class="tl text-l10" style="width: 100%">职称名称</div>
67
+                            </th>
68
+
69
+                            <th abbr="article_title" axis="col3" class="w100">
70
+                                <div class="tc">职称地区</div>
71
+                            </th>
72
+
73
+                            <th abbr="article_title" axis="col3" class="w120">
74
+                                <div class="tc">主题图片</div>
75
+                            </th>
76
+
77
+                            <th abbr="article_time" axis="col6" class="w60">
78
+                                <div class="tc">启用</div>
79
+                            </th>
80
+
81
+                            <th axis="col1" class="w180">
82
+                                <div class="tc">操作</div>
83
+                            </th>
84
+                        </tr>
85
+                    </thead>
86
+                </table>
87
+            </div>
88
+        </div>
89
+
90
+        <div class="bDiv" style="height: auto;">
91
+            <div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
92
+                <table style="width: 100%">
93
+                    <tbody>
94
+                    {empty name="list"}
95
+                        <tr>
96
+                            <td class="no-data" align="center" axis="col0" colspan="50">
97
+                                <div class="no_row">
98
+                                    <div class="no_pic"><img src="__SKIN__/images/null-data.png"></div>
99
+                                </div>
100
+                            </td>
101
+                        </tr>
102
+                    {else/}
103
+                        {foreach name="list" item="vo" key="k" }
104
+                            <tr>
105
+                                {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
106
+                                <td class="sign">
107
+                                    <div class="w40 tc"> <input type="checkbox" name="ids[]" value="{$vo.id}"> </div>
108
+                                </td>
109
+                                {/if}
110
+                                <td>
111
+                                    <div class="tc w60">
112
+                                    {eq name='$main_lang' value='$admin_lang'}
113
+                                        {$vo.id}
114
+                                    {else /}
115
+                                        {$main_adv_list[$vo['id']]['id']|default=$vo['id']}
116
+                                    {/eq}
117
+                                    </div>
118
+                                </td>
119
+
120
+                                <td align="left" style="width:100%;">
121
+                                    <div class="tl text-l10">
122
+                                        {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
123
+                                            <a href="javascript:void(0);" data-href="{:url('ZczsPosition/edit',array('id'=>$vo['id']))}" data-closereload="1" onclick="openFullframe(this, '编辑广告', '100%', '100%');">{$vo.title}</a>
124
+                                        {else /}
125
+                                            {$vo.title}
126
+                                        {/eq}
127
+                                    </div>
128
+                                </td>
129
+                                <td>
130
+                                    <div class="tc w100"> {$vo.type_name} </div>
131
+                                </td>
132
+                                <td>
133
+                                    <div class="tc w120">
134
+                                        <ul class="adpic">
135
+                                            {volist name="$vo.ad" id="vs" length="1" }
136
+                                                <li>
137
+                                                    <img src="{$vs.litpic}"> {eq name="$vo.type" value="1"}<span>{$vo.ad_count}</span>{/eq}
138
+                                                </li>
139
+                                            {/volist}
140
+                                        </ul>
141
+                                    </div>
142
+                                </td>
143
+                                <td>
144
+                                    <div class="tc w60">
145
+                                        {if condition="$vo['status'] eq 1"}
146
+                                            <span class="yes" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('zczs_position','id','{$vo.id}','status',this);"{/eq} ><i class="fa fa-check-circle"></i>是</span>
147
+                                        {else /}
148
+                                            <span class="no" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('zczs_position','id','{$vo.id}','status',this);"{/eq} ><i class="fa fa-ban"></i>否</span>
149
+                                        {/if}
150
+                                    </div>
151
+                                </td>
152
+                                <td class="operation">
153
+                                    <div class="w180 tc">
154
+                                        {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}
155
+                                            <a href="javascript:void(0);" data-href="{:url('ZczsPosition/edit',array('id'=>$vo['id']))}" data-closereload="1" class="btn blue" onclick="openFullframe(this, '编辑职称', '100%', '100%');">编辑</a> <i></i>
156
+                                        {/eq}
157
+
158
+                                        {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
159
+                                            {eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
160
+                                                <a class="btn red"  href="javascript:void(0);" data-url="{:url('ZczsPosition/del')}" data-id="{$vo.id}" onClick="delfun(this);">删除</a>
161
+                                            {/eq} <!--<i></i>-->
162
+                                        {/if}
163
+    									
164
+                                       <!-- <a class="btn blue" href="javascript:void(0);" onclick="copyToClipBoard({$main_adv_list[$vo['id']]['id']|default=$vo['id']}, 1, {$vo['type']})">标签调用</a>-->
165
+                                    </div>
166
+                                </td>
167
+                            </tr>
168
+                        {/foreach}
169
+                    {/empty}
170
+                    </tbody>
171
+                </table>
172
+            </div>
173
+            <div class="iDiv" style="display: none;"></div>
174
+        </div>
175
+        {notempty name="list"}
176
+        <div class="tDiv">
177
+            <div class="tDiv2">
178
+                {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
179
+                    <div class="fbutton checkboxall"> <input type="checkbox" class="checkAll"> </div>
180
+                    {eq name="$Think.const.CONTROLLER_NAME.'@del'|is_check_access" value="1"}
181
+                        <div class="fbutton">
182
+                            <a onclick="batch_del(this, 'ids');" data-url="{:url('ZczsPosition/del')}" class="layui-btn layui-btn-primary">批量删除</a>
183
+                        </div>
184
+                    {/eq}
185
+                {/if}
186
+                <!-- 分页 -->
187
+                {include file="public/page" /}
188
+            </div>
189
+            <div style="clear:both"></div>
190
+        </div>
191
+        {/notempty}
192
+    </div>
193
+</div>
194
+
195
+<script type="text/javascript">
196
+    $(function() {
197
+        $('input[name*=ids]').click(function() {
198
+            if ($('input[name*=ids]').length == $('input[name*=ids]:checked').length) {
199
+                $('.checkAll').prop('checked', 'checked');
200
+            } else {
201
+                $('.checkAll').prop('checked', false);
202
+            }
203
+        });
204
+        $('input[type=checkbox].checkAll').click(function() {
205
+            $('input[type=checkbox]').prop('checked', this.checked);
206
+        });
207
+    });
208
+    
209
+    $(document).ready(function() {
210
+        // 表格行点击选中切换
211
+        $('#flexigrid > table>tbody >tr').click(function() {
212
+            $(this).toggleClass('trSelected');
213
+        });
214
+
215
+        // 点击刷新数据
216
+        $('.fa-refresh').click(function() {
217
+            location.href = location.href;
218
+        });
219
+
220
+        $('#searchForm select[name=type]').change(function(){
221
+            $('#searchForm').submit();
222
+        });
223
+
224
+        $('#searchForm select[name=map]').change(function(){
225
+            $('#searchForm').submit();
226
+        });
227
+
228
+    });
229
+
230
+    /**
231
+     * 代码调用js
232
+     * @param id  id
233
+     * @param limit 条数
234
+     */
235
+    function copyToClipBoard(id, limit, type) {
236
+        var advstr = '';
237
+        if (1 == type) {
238
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   <img src='{$"+"field.litpic}' alt='{$"+"field.title}' />\r\n{/eyou:adv";
239
+        } else if (2 == type) {
240
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   <video src='{$"+"field.litpic}' controls preload='auto' oncontextmenu='return fase'></video>\r\n{/eyou:adv";
241
+        } else if (3 == type) {
242
+            advstr = "{eyou:adv pid='" + id + "'}\r\n   {$"+"field.intro}\r\n{/eyou:adv";
243
+        }
244
+        var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 adv 调用:</dd>';
245
+        contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:60px;">' + advstr + '}</textarea>';
246
+        contentdiv += '<dd>JavaScript:</dd>';
247
+        contentdiv += '<dd><input type="text" style=" width:400px;" value="<script type=&quot;text/javascript&quot; src=&quot;http://' + '{$Think.server.http_host}' + '__ROOT_DIR__/index.php?m=api&amp;c=Other&amp;a=other_show&amp;pid=' + id + '&amp;row='+limit+'&quot;><\/script>"></dd>';
248
+        contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将标签adv或JavaScript代码复制并粘贴到对应模板文件中!</dd></dl></div>';
249
+        layer.open({
250
+            title: '代码调用',
251
+            type: 1,
252
+            shade: layer_shade,
253
+            skin: 'layui-layer-demo',
254
+            area: ['480px', '280px'], //宽高
255
+            content: contentdiv
256
+        });
257
+    }
258
+
259
+</script>
260
+
261
+{include file="public/footer" /}

+ 24
- 0
login.php Целия файл

@@ -10,6 +10,30 @@
10 10
  * Author: 小虎哥 <1105415366@qq.com>
11 11
  * Date: 2018-4-3
12 12
  */
13
+
14
+
15
+// 检查是否使用HTTPS
16
+$isSecure = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443;
17
+
18
+// 获取协议
19
+$protocol = $isSecure ? 'https://' : 'http://';
20
+
21
+// 获取域名
22
+$domainName = $_SERVER['HTTP_HOST'];
23
+
24
+// 完整的URL
25
+$url = $protocol . $domainName;
26
+
27
+echo $domainName; // 输出当前域名的完整URL
28
+
29
+if($domainName == 'www.zc10000.com' || $domainName == 'zc10000.com'){
30
+    header('HTTP/1.1 301 Moved Permanently');
31
+    // 设置新的位置为主页URL
32
+    header('Location: https://www.zc10000.com');
33
+    // 确保之后的代码不会执行
34
+    exit();
35
+}
36
+
13 37
 header("Content-type:text/html;charset=utf-8");
14 38
 // [ 应用入口文件 ]
15 39
 if (extension_loaded('zlib')){

Loading…
Отказ
Запис