diff --git a/app/common.php b/app/common.php index 4174957d..bccfea21 100755 --- a/app/common.php +++ b/app/common.php @@ -176,6 +176,28 @@ function format_bytes($size, $delimiter = '') { } +/** + * 获取附件信息 + * @param int $cover_id + * @param string $field + * @return 完整的数据 或者 指定的$field字段值 + */ +function get_attach($id, $field = null) { + $basePath = request()->domain(); + if (empty($id)) { + return $basePath . '/static/images/default.png'; + } + $picture = \think\facade\Db::name('Attach')->where(array('id' => $id))->find(); + if ($field == 'path') { + if (!empty($picture['url'])) { + $picture['path'] = $picture['url'] ? $$basePath . $picture['url'] : $$basePath . '/static/images/default.png'; + } else { + $picture['path'] = $picture['path'] ? $$basePath . $picture['path'] : $$basePath . '/static/images/default.png'; + } + } + return empty($field) ? $picture : $picture[$field]; +} + /** * 获取文档封面图片 * @param int $cover_id diff --git a/app/controller/Upload.php b/app/controller/Upload.php index fcf6bd02..20d0e8dd 100644 --- a/app/controller/Upload.php +++ b/app/controller/Upload.php @@ -51,6 +51,7 @@ class Upload extends Base { public function server(){ $param = $this->request->get(); + $map = []; if (!isset($param['name'])) { return $this->error('非法操作'); } @@ -60,10 +61,11 @@ class Upload extends Base { 'query' => $this->request->param() ]; if($param['type'] == 'file'){ - $list = Db::name('File')->paginate($pageConfig); + $map[] = ['ext', '<>', 'image']; }else{ - $list = Db::name('Picture')->paginate($pageConfig); + $map[] = ['ext', '=', 'image']; } + $list = Db::name('Attach')->paginate($pageConfig); $this->data = [ 'from' => $this->request->param('from'), @@ -79,15 +81,16 @@ class Upload extends Base { } public function upload(){ - $upload_type = $this->request->get('filename', 'image', 'trim'); + $type = $this->request->param('type'); + $upload_type = (false !== strpos("image", $type)) ? "image" : 'file'; $config = $this->$upload_type(); // 获取表单上传文件 例如上传了001.jpg - $file = request()->file('file'); + $file = $this->request->file('file'); try { validate(['file'=>'filesize:10240|fileExt:jpg|image:200,200,jpg']) ->check([$file]); $data['code'] = 1; - $data['info'] = $this->save($file, $upload_type); + $data['info'] = $this->save($this->request, $upload_type); } catch (think\exception\ValidateException $e) { $data['code'] = 0; $data['info'] = $e->getMessage(); @@ -99,6 +102,10 @@ class Upload extends Base { return []; } + protected function file(){ + return []; + } + public function editor(){ $fileType = $this->request->get('fileType', 'image', 'trim'); $file = request()->file('imgFile'); @@ -130,27 +137,20 @@ class Upload extends Base { return json($data); } - protected function save($file, $upload_type){ + protected function save($request, $upload_type){ $data = []; - $savename = Filesystem::disk('public')->putFile($upload_type, $file, 'md5'); - - $data['create_time'] = $file->getATime(); //最后访问时间 - $data['savename'] = $file->getBasename(); //获取无路径的basename - $data['c_time'] = $file->getCTime(); //获取inode修改时间 - $data['ext'] = $file->getExtension(); //文件扩展名 - $data['name'] = $file->getFilename(); //获取文件名 - $data['m_time'] = $file->getMTime(); //获取最后修改时间 - $data['owner'] = $file->getOwner(); //文件拥有者 - $data['savepath'] = $file->getPath(); //不带文件名的文件路径 - $data['url'] = $data['path'] = '/uploads/' . $savename; //全路径 + $file= $request->file('file'); + $data['savename'] = $request->param('name'); + $data['mime'] = $request->param('type'); $data['size'] = $file->getSize(); //文件大小,单位字节 - $data['is_file'] = $file->isFile(); //是否是文件 - $data['is_execut'] = $file->isExecutable(); //是否可执行 - $data['is_readable'] = $file->isReadable(); //是否可读 - $data['is_writable'] = $file->isWritable(); //是否可写 $data['md5'] = md5_file($file->getPathname()); $data['sha1'] = sha1_file($file->getPathname()); - $data['id'] = time(); + $data['ext'] = pathinfo($data['savename'], PATHINFO_EXTENSION); //文件扩展名 + $data['savepath'] = Filesystem::disk('public')->putFile($upload_type, $file, 'md5'); + $data['location'] = "/uploads/"; + $data['url'] = $data['location'] . $data['savepath']; + $data['create_time'] = time(); + $data['id'] = Db::name('Attach')->insertGetId($data); return $data; } } \ No newline at end of file diff --git a/app/controller/admin/Wechat.php b/app/controller/admin/Wechat.php index 1ffa1d6d..9de7ac2b 100644 --- a/app/controller/admin/Wechat.php +++ b/app/controller/admin/Wechat.php @@ -10,6 +10,7 @@ namespace app\controller\admin; use app\model\Wechat as WechatM; +use app\model\WechatPay; /** * @title 微信模块 @@ -19,14 +20,14 @@ class Wechat extends Base { /** * @title 微信列表 - * @author huajie + * @author molong */ public function index() { $map = []; $order = "id desc"; //获取列表数据 - $list = WechatM::where($map)->order($order)->paginate($this->request->pageConfig); + $list = WechatM::where($map)->order($order)->paginate($this->request->pageConfig)->append(['type_text']); $this->data = array( 'list' => $list, @@ -37,7 +38,7 @@ class Wechat extends Base { /** * @title 添加微信 - * @author colin + * @author molong */ public function add() { if ($this->request->isPost()) { @@ -58,7 +59,7 @@ class Wechat extends Base { /** * @title 修改微信 - * @author colin + * @author molong */ public function edit($id = null) { if ($this->request->isPost()) { @@ -83,108 +84,92 @@ class Wechat extends Base { } /** - * @title 删除用户行为 - * @author colin + * @title 删除微信 + * @author molong */ - public function del() { - $id = $this->getArrayParam('id'); - if (empty($id)) { - return $this->error("非法操作!", ''); + public function delete() { + $id = $this->request->param('id', ''); + + $map = []; + if (!$id) { + return $this->error('请选择要操作的数据!'); } - $map['id'] = array('IN', $id); - $result = db('Action')->where($map)->delete(); - if ($result) { - action_log('delete_action', 'Action', $id, session('user_auth.uid')); - return $this->success('删除成功!'); + if (is_array($id)) { + $map[] = ['id', 'IN', $id]; + }else{ + $map[] = ['id', '=', $id]; + } + + $result = WechatM::where($map)->delete(); + if (false !== $result) { + return $this->success('删除成功'); } else { return $this->error('删除失败!'); } } /** - * @title 修改用户行为状态 - * @author colin - */ - public function setstatus() { - $id = $this->getArrayParam('id'); - if (empty($id)) { - return $this->error("非法操作!", ''); - } - $status = input('get.status', '', 'trim,intval'); - $message = !$status ? '禁用' : '启用'; - $map['id'] = array('IN', $id); - $result = db('Action')->where($map)->setField('status', $status); - if ($result !== false) { - action_log('setstatus_action', 'Action', $id, session('user_auth.uid')); - return $this->success('设置' . $message . '状态成功!'); - } else { - return $this->error('设置' . $message . '状态失败!'); - } - } - - /** - * @title 小程序列表 - * @author huajie + * @title 微信支付 + * @author molong */ public function pay() { - return $this->fetch(); - } - /** - * @title 查看行为日志 - * @author huajie - */ - public function detail($id = 0) { - $model = model('ActionLog'); - if (empty($id)) { - return $this->error('参数错误!'); - } + $map = []; - $info = $model::get($id); + $order = "id desc"; + //获取列表数据 + $list = WechatPay::where($map)->order($order)->paginate($this->request->pageConfig); - $info['title'] = get_action($info['action_id'], 'title'); - $info['user_id'] = get_username($info['user_id']); - $info['action_ip'] = long2ip($info['action_ip']); - $info['create_time'] = date('Y-m-d H:i:s', $info['create_time']); - $data = array( - 'info' => $info, - 'keyList' => $model->keyList, + $this->data = array( + 'list' => $list, + 'page' => '', ); - $this->assign($data); - $this->setMeta('查看行为日志'); return $this->fetch(); } /** - * @title 删除日志 - * @param mixed $id - * @author huajie + * @title 添加微信支付 + * @author molong */ - public function dellog() { - $id = $this->getArrayParam('id'); - if (empty($id)) { - return $this->error("非法操作!", ''); - } - $map['id'] = array('IN', $id); - $res = db('ActionLog')->where($map)->delete(); - if ($res !== false) { - action_log('delete_actionlog', 'ActionLog', $id, session('user_auth.uid')); - return $this->success('删除成功!'); + public function addpay() { + if ($this->request->isPost()) { + $data = $this->request->post(); + $result = WechatPay::create($data); + if (false != $result) { + return $this->success('添加成功!', url('/admin/wechat/index')); + } else { + return $this->error('添加失败!'); + } } else { - return $this->error('删除失败!'); + $this->data = array( + 'keyList' => WechatPay::$fieldlist + ); + return $this->fetch('admin/public/edit'); } } /** - * @title 清空日志 + * @title 修改微信支付 + * @author molong */ - public function clear($id = '') { - $res = db('ActionLog')->where('1=1')->delete(); - if ($res !== false) { - //记录行为 - action_log('clear_actionlog', 'ActionLog', $id, session('user_auth.uid')); - return $this->success('日志清空成功!'); + public function editpay($id = null) { + if ($this->request->isPost()) { + $data = $this->request->post(); + $result = WechatPay::update($data, ['id' => $data['id']]); + if ($result !== false) { + return $this->success('编辑成功!', url('/admin/wechat/index')); + } else { + return $this->error('修改失败!'); + } } else { - return $this->error('日志清空失败!'); + $info = WechatPay::find($id); + if (!$info) { + return $this->error("非法操作!"); + } + $this->data = array( + 'info' => $info, + 'keyList' => WechatPay::$fieldlist + ); + return $this->fetch('admin/public/edit'); } } } \ No newline at end of file diff --git a/app/http/form/Factory.php b/app/http/form/Factory.php index da630204..4e57e079 100644 --- a/app/http/form/Factory.php +++ b/app/http/form/Factory.php @@ -19,6 +19,7 @@ class Factory { protected $data = []; public function __construct($field, $data){ + $field['is_must'] = isset($field['is_must']) ? $field['is_must'] : 0; $this->field = $field; $this->data = $data; $this->parseValue(); diff --git a/app/http/form/template/attach.html b/app/http/form/template/attach.html index 5a7a3a93..fdc68254 100644 --- a/app/http/form/template/attach.html +++ b/app/http/form/template/attach.html @@ -5,22 +5,17 @@ {else/} {/if} -
+
{if $value} {php} - $images = get_file($value); + $file = get_attach($value); {/php} -
  • -
    - - - 上传时间:{$images['create_time']} -
    +
    +
    +
    + {$file['savename']}
    -
    - -
    -
  • +
    {/if}
    \ No newline at end of file diff --git a/app/http/form/template/text.html b/app/http/form/template/text.html index 7d22e225..ec007d3f 100644 --- a/app/http/form/template/text.html +++ b/app/http/form/template/text.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/model/Wechat.php b/app/model/Wechat.php index aaa0fbb8..a3197201 100644 --- a/app/model/Wechat.php +++ b/app/model/Wechat.php @@ -15,10 +15,22 @@ namespace app\model; class Wechat extends \think\Model { public static $fieldlist = [ - ['name' => 'name', 'title' => '名称', 'type' => 'text', 'help' => '微信名称'], - ['name' => 'app_id', 'title' => '微信APPID', 'type' => 'text', 'help' => 'AppID'], + ['name' => 'title', 'title' => '名称', 'type' => 'text', 'is_must' => 1, 'help' => '微信名称'], + ['name' => 'type', 'title' => '微信类型', 'type' => 'select', 'is_must' => 1, 'option' => [['key' => 1, 'label' => '公众号'],['key' => 2, 'label' => '小程序'],['key' => 3, 'label' => '企业号']], 'help' => 'AppID'], + ['name' => 'app_id', 'title' => '微信APPID', 'type' => 'text', 'is_must' => 1, 'help' => 'AppID'], ['name' => 'secret', 'title' => '微信秘钥', 'type' => 'text', 'help' => 'AppSecret'], ['name' => 'token', 'title' => '微信Token', 'type' => 'text', 'help' => 'Token'], ['name' => 'aes_key', 'title' => 'EncodingAESKey', 'type' => 'text', 'help' => 'EncodingAESKey,兼容与安全模式下请一定要填写!!!'], ]; + + protected function getTypeTextAttr($value, $data){ + $type = self::$fieldlist[1]['option']; + $type_text = ""; + foreach($type as $val){ + if($data['type'] && $data['type'] == $val['key']){ + $type_text = $val['label']; + } + } + return $type_text; + } } \ No newline at end of file diff --git a/app/model/WechatPay.php b/app/model/WechatPay.php new file mode 100644 index 00000000..22102e7a --- /dev/null +++ b/app/model/WechatPay.php @@ -0,0 +1,25 @@ + +// +---------------------------------------------------------------------- + +namespace app\model; + +/** + * 微信模型 + */ +class WechatPay extends \think\Model { + + public static $fieldlist = [ + ['name' => 'app_id', 'title' => '微信APPID', 'type' => 'text', 'is_must' => 1, 'help' => 'AppID'], + ['name' => 'mch_id', 'title' => '商户ID', 'type' => 'text', 'is_must' => 1, 'help' => '商户ID'], + ['name' => 'key', 'title' => 'API秘钥', 'type' => 'text', 'is_must' => 1, 'help' => 'API秘钥'], + ['name' => 'cert_path_id', 'title' => '证书', 'type' => 'attach', 'help' => '如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)'], + ['name' => 'key_path_id', 'title' => '证书秘钥', 'type' => 'attach', 'help' => ''], + ['name' => 'notify_url', 'title' => '回调地址', 'type' => 'text', 'help' => '你也可以在下单时单独设置来想覆盖它'], + ]; +} \ No newline at end of file diff --git a/config/view.php b/config/view.php index 01259a0e..bd0afb6d 100755 --- a/config/view.php +++ b/config/view.php @@ -21,5 +21,7 @@ return [ // 标签库标签开始标记 'taglib_begin' => '{', // 标签库标签结束标记 - 'taglib_end' => '}', + 'taglib_end' => '}', + // 预先加载的标签库 + 'taglib_pre_load' => 'com\Sent', ]; diff --git a/extend/com/Sent.php b/extend/com/Sent.php new file mode 100644 index 00000000..8b17fd5b --- /dev/null +++ b/extend/com/Sent.php @@ -0,0 +1,153 @@ + +// +---------------------------------------------------------------------- +namespace com; + +/** + * @title 自定义标签库 + * @description 自定义标签库 + */ +class Sent extends \think\template\TagLib { + + // 标签定义 + protected $tags = array( + // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次 + 'nav' => array('attr' => 'name,pid', 'close' => 1), //获取导航 + 'list' => array('attr' => 'table,where,order,limit,id,sql,field,key','level'=>3),//列表 + 'doc' => array('attr' => 'model,field,limit,id,field,key,name','level'=>3), + 'recom' => array('attr' => 'doc_id,id'), + 'link' => array('attr' => 'type,limit' , 'close' => 1),//友情链接 + 'prev' => array('attr' => 'id,cate' , 'close' => 1),//上一篇 + 'next' => array('attr' => 'id,cate' , 'close' => 1),//下一篇 + ); + + public function tagnav($tag, $content){ + $pid = isset($tag['pid']) ? 'pid=' . $tag['pid'] : ''; + $tree = isset($tag['tree']) ? $tag['tree'] : 1; + $parse = $parse = 'where("status=1")->where("'.$pid.'")->order("sort")->select();'; + if($tree == 1){ + $parse .= '$__NAV__ = list_to_tree($__NAV__, "id", "pid");'; + } + $parse .= 'foreach ($__NAV__ as $key => $'.$tag['name'].') {'; + $parse .= '?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function tagdoc($tag, $content){ + $model = !empty($tag['model']) ? $tag['model']:''; + $cid = !empty($tag['cid']) ? $tag['cid']:'0'; + $field = empty($tag['field']) ? '*' : $tag['field']; + $limit = empty($tag['limit']) ? 20 : $tag['limit']; + $order = empty($tag['order']) ? 'id desc' : $tag['order']; + $name = isset($tag['name']) ? $tag['name'] : 'item'; + + //获得当前栏目的所有子栏目 + $ids = get_category_child($cid); + $ids = implode(',', $ids); + $where = "category_id IN ({$ids})"; + $where .= " and status >= 1"; + + $parse = $parse = 'where(\''.$where.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; + $parse .= 'foreach ($__LIST__ as $key => $'.$tag['name'].') {'; + $parse .= '?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function taglist($tag, $content){ + $name = !empty($tag['name']) ? $tag['name'] : ''; + $map = !empty($tag['map']) ? $tag['map'] : ''; + $field = empty($tag['field']) ? '*' : $tag['field']; + $limit = empty($tag['limit']) ? 20 : $tag['limit']; + $order = empty($tag['order']) ? 'id desc' : $tag['order']; + + $where[] = "status > 0"; + if ($map) { + $where[] = $map; + } + $map = implode(" and ", $where); + + $parse = $parse = 'where(\''.$map.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; + $parse .= 'foreach ($__LIST__ as $key => $'.$tag['id'].') {'; + $parse .= '?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function tagrecom($tag, $content){ + $model = empty($tag['model']) ? '' : $tag['model']; + $field = empty($tag['field']) ? '*' : $tag['field']; + $limit = empty($tag['limit']) ? 20 : $tag['limit']; + $order = empty($tag['order']) ? 'id desc' : $tag['order']; + if (!$model) { + return ''; + } + $parse = $parse = 'recom(\'' .$field. '\',' .$limit. ',\'' .$order. '\');'; + $parse .= 'foreach ($__LIST__ as $key => $'.$tag['id'].') {'; + $parse .= '?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function taglink($tag, $content){ + $type = !empty($tag['type']) ? $tag['type'] : ''; + $limit = !empty($tag['limit']) ? $tag['limit'] : ''; + $field = empty($tag['field']) ? '*' : $tag['field']; + $limit = empty($tag['limit']) ? 20 : $tag['limit']; + $order = empty($tag['order']) ? "id desc" : $tag['order']; + + $where[] = "status > 0"; + if ($type) { + $where[] = "ftype = " . $type; + } + $map = implode(" and ", $where); + + $parse = $parse = 'where(\''.$map.'\')->field(\''.$field.'\')->limit(\''.$limit.'\')->order(\''.$order.'\')->select();'; + $parse .= 'foreach ($__LIST__ as $key => $'.$tag['name'].') {'; + $parse .= '?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function tagprev($tag, $content){ + $id = !empty($tag['id']) ? $tag['id'] : ''; + $cate = !empty($tag['cate']) ? $tag['cate'] : ''; + $model = !empty($tag['model']) ? $tag['model'] : ''; + + $parse = '" . ' . $id . ';'; + $parse .= '$prev = db(\''.$model.'\')->where($map)->order(\'id asc\')->find();if(!empty($prev)){ ?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } + + public function tagnext($tag, $content){ + $id = !empty($tag['id']) ? ($tag['id']) : ''; + $cate = !empty($tag['cate']) ? $tag['cate'] : ''; + $model = !empty($tag['model']) ? $tag['model'] : ''; + + $parse = 'where($map)->order(\'id desc\')->find();if(!empty($next)){ ?>'; + $parse .= $content; + $parse .= ''; + return $parse; + } +} diff --git a/public/static/common/css/form.css b/public/static/common/css/form.css index ed838f27..2eb87616 100644 --- a/public/static/common/css/form.css +++ b/public/static/common/css/form.css @@ -2,4 +2,6 @@ .img-list .item{width: 20%;} .img-list .item .thumb{margin: 10px 10px 0 0 ; border: 1px solid #efefef; height: 120px; border-radius: 4px; position: relative; overflow: hidden;} .img-list .item .thumb img{width: 100%;} -.img-list .item .close{position: absolute; right: 5px; top: 5px; opacity: 1; width: 20px; height: 20px; font-size: 10px; text-align: center; line-height: 20px; color: #ffffff; border-radius: 50%; background: #333333;} \ No newline at end of file +.img-list .item .thumb .close{position: absolute; right: 5px; top: 5px; opacity: 1; width: 20px; height: 20px; font-size: 10px; text-align: center; line-height: 20px; color: #ffffff; border-radius: 50%; background: #333333;} +.file-list{padding: 10px 0; display: flex; flex-direction: column;} +.file-list .attach{line-height: 35px; border-bottom: 1px dotted #333333; cursor: pointer;} \ No newline at end of file diff --git a/public/static/common/js/require-form.js b/public/static/common/js/require-form.js index 74063bee..c877bbc6 100644 --- a/public/static/common/js/require-form.js +++ b/public/static/common/js/require-form.js @@ -3,14 +3,16 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator) config: { editor: { "full":['source', 'undo', 'redo', 'code', 'quote', 'cut', - 'plainpaste', 'wordpaste', 'justifyleft', 'justifycenter', 'justifyright', - 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', - 'superscript', 'clearhtml', 'quickformat', 'selectall', '/', - 'formatblock', 'fontname', 'fontsize', 'forecolor', 'hilitecolor', 'bold', - 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', 'image', 'multiimage', 'media', 'insertfile', 'table', 'hr', 'baidumap', - 'anchor', 'link', 'unlink','fullscreen'], + 'plainpaste', 'wordpaste', 'justifyleft', 'justifycenter', 'justifyright', + 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', + 'superscript', 'clearhtml', 'quickformat', 'selectall', '/', + 'formatblock', 'fontname', 'fontsize', 'forecolor', 'hilitecolor', 'bold', + 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', 'image', 'multiimage', 'media', 'insertfile', 'table', 'hr', 'baidumap', + 'anchor', 'link', 'unlink','fullscreen' + ], "base":['undo', 'redo', 'quote', 'formatblock', 'fontname', 'fontsize', 'forecolor', 'hilitecolor', 'bold', - 'italic', 'underline', 'strikethrough', 'lineheight', 'image', 'media', 'table'], + 'italic', 'underline', 'strikethrough', 'lineheight', 'image', 'media', 'table' + ], }, fieldlisttpl: '
    ' }, @@ -96,7 +98,7 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator) }, form.data("validator-options") || {})); //移除提交按钮的disabled类 - $(".layer-footer [type=submit],.fixed-footer [type=submit],.normal-footer [type=submit]", form).removeClass("disabled"); + $("button.btn[type=submit]", form).removeClass("disabled"); }, editor: function (form) { //绑定编辑器元素事件 @@ -307,6 +309,7 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator) var value = $('.picker-box input[type=hidden]').val().split(","); value = value.filter(val => val != $(this).parents('.item').data('id')) $(this).parents('.item').remove(); + console.log(value) if(value.length > 0){ $('.picker-box input[type=hidden]').val(value.join(',')); }else{ @@ -589,13 +592,22 @@ define(['jquery', 'bootstrap', 'validator'], function ($, undefined, Validator) var value = field.val() ? field.val().split(",") : []; if(param.limit == 1){ - var html = '
    '; + if(param.type == 'image'){ + var html = '
    '; + }else{ + var html = '
    '+fileList[0].savename+'
    '; + } + file.html(html); field.val(fileList[0].id); }else{ for(var i = 0; i < fileList.length; i++){ if(!value.includes((fileList[i].id).toString())){ - var html = '
    '; + if(param.type == 'image'){ + var html = '
    '; + }else{ + var html = '
    '+fileList[i].savename+'
    '; + } value.push(fileList[i].id); file.append(html); } diff --git a/public/static/common/js/require-upload.js b/public/static/common/js/require-upload.js index 1822426c..d9417002 100644 --- a/public/static/common/js/require-upload.js +++ b/public/static/common/js/require-upload.js @@ -424,8 +424,8 @@ define(['jquery', 'bootstrap', 'webupload'], function ($, undefined, WebUploader }, server: function(){ var query = sent.parseUrl(window.location.href); - if($('.img-list .item .thumb').length > 0){ - $('.img-list .item .thumb').on('click', function(){ + if($('.img-list .item .thumb, .file-list .item .attach').length > 0){ + $('.img-list .item .thumb, .file-list .item .attach').on('click', function(){ if($(this).hasClass('selected')){ Upload.config.upList = Upload.config.upList.filter(item => !sent.utils.isObjEqual(item, $(this).data())); $(this).removeClass('selected'); diff --git a/view/admin/public/footer.html b/view/admin/public/footer.html index 423514db..d6a22081 100644 --- a/view/admin/public/footer.html +++ b/view/admin/public/footer.html @@ -4,5 +4,11 @@ var require = { } + + + \ No newline at end of file diff --git a/view/admin/public/header.html b/view/admin/public/header.html index 0380a79a..4d2b6025 100644 --- a/view/admin/public/header.html +++ b/view/admin/public/header.html @@ -6,11 +6,5 @@ SentCMS网站管理系统后台 - - - \ No newline at end of file diff --git a/view/admin/wechat/index.html b/view/admin/wechat/index.html index 3a8d0c22..ca531134 100644 --- a/view/admin/wechat/index.html +++ b/view/admin/wechat/index.html @@ -6,7 +6,7 @@

    {$meta_title}

    新 增 - +
    @@ -18,7 +18,8 @@ 编号 名称 类型 - appid + 微信appid + 微信秘钥 创建时间 操作 @@ -28,9 +29,10 @@ {$item['id']} - {$item['name']} + {$item['title']} {$item['type_text']} - {$item['appid']} + {$item['app_id']} + {$item['secret']} {$item['update_time']} 编辑 diff --git a/view/admin/wechat/pay.html b/view/admin/wechat/pay.html index 9f75ef10..2f4cca63 100644 --- a/view/admin/wechat/pay.html +++ b/view/admin/wechat/pay.html @@ -5,7 +5,7 @@

    {$meta_title}

    @@ -16,15 +16,31 @@ 编号 - 行为名称 - 执行者 + appid + 商户ID 执行时间 操作 + {volist name="list" id="item"} + + + {$item['id']} + {$item['app_id']} + {$item['mch_id']} + {$item['update_time']} + + 编辑 + 删除 + + + {/volist} + + {$page|raw} + {/block} \ No newline at end of file diff --git a/view/upload/server.html b/view/upload/server.html index d35ccc2c..243b3b68 100644 --- a/view/upload/server.html +++ b/view/upload/server.html @@ -6,6 +6,9 @@ .img-list .item .thumb{margin: 5px; border: 1px solid #efefef; height: 120px; border-radius: 4px; position: relative; cursor: pointer; overflow: hidden;} .img-list .item .thumb img{width: 100%;} .img-list .item .selected .ok{position: absolute; right: 0; bottom: 0; width: 0; height: 0; border-left: 50px solid transparent; border-bottom: 50px solid #56b0fa;} +.file-list{padding: 5px; height: 300px; overflow-y: scroll; display: flex; flex-direction: column; border: 1px dashed #999999;} +.file-list .item .attach{margin: 5px; padding: 0 10px; line-height: 35px; border: 1px solid #efefef; position: relative; cursor: pointer; overflow: hidden;} +.file-list .item .selected .ok{position: absolute; right: 0; bottom: 0; width: 0; height: 0; border-left: 50px solid transparent; border-bottom: 50px solid #56b0fa;} .page{height: 45px;} .page .pagination{margin: 0;} @@ -19,6 +22,7 @@ {if empty($list)}

    无{if $param['type'] == 'image'}图片{else/}文件{/if}

    {else/} + {if $param['type'] == 'image'}
    {volist name="list" id="item"}
    @@ -26,6 +30,15 @@
    {/volist}
    + {else/} +
    + {volist name="list" id="item"} +
    +
    {$item['savename']}
    +
    + {/volist} +
    + {/if} {/if}
    {$page|raw}