|
@@ -1,211 +1,128 @@
|
|
|
-<style>
|
|
|
- .smInput{
|
|
|
- width: 100px;
|
|
|
- }
|
|
|
- .skuName{
|
|
|
- width: 150px;
|
|
|
- }
|
|
|
- .amountItem{
|
|
|
- line-height: 30px;
|
|
|
- }
|
|
|
-</style>
|
|
|
-<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
|
|
- <input type="hidden" name="row[id]" value="{$row.id|default=''}"/>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input id="c-name" class="form-control" name="row[name]" type="text" data-rule="required;length(1~50)" value="{$row.name|default=''}">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('分类')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {:build_select('row[category_id]',array_column($category,'name','id'),$row['category_id']??0,['required'=>true])}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Brand')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input id="c-brand" class="form-control" name="row[brand]" type="text" data-rule="required;length(1~10)" value="{$row.brand|default=''}">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('描述')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input id="c-describe" class="form-control" name="row[describe]" type="text" data-rule="required" value="{$row.describe|default=''}">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Is_hot')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {:build_radios('row[is_hot]',[0=>'否',1=>'是'],$row['is_hot']??0)}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Is_kill')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {:build_radios('row[is_kill]',[0=>'否',1=>'是'],$row['is_kill']??0)}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('状态')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {:build_radios('row[status]',$status,$row['status']??1)}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">是否维修费商品:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {:build_radios('row[is_fix]',[0=>'否',1=>'是'],$row['is_fix']??0)}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Logo')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <div class="input-group">
|
|
|
- <input id="c-logo" class="form-control" size="50" name="row[logo]" type="text" value="{:implode(',',$row['logo']??[])}" data-rule="required">
|
|
|
- <div class="input-group-addon no-border no-padding">
|
|
|
- <span><button type="button" id="plupload-avatar-logo" class="btn btn-danger plupload" data-input-id="c-logo" data-mimetype="image/*" data-multiple="true" data-preview-id="c-logo-pre"><i class="fa fa-upload"></i> 上传</button></span>
|
|
|
- <span><button type="button" id="fachoose-avatar-logo" class="btn btn-primary fachoose" data-input-id="c-logo" data-mimetype="image/*" data-multiple="true"><i class="fa fa-list"></i> 选择</button></span>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta name="viewport"
|
|
|
+ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
|
+ <title>Document</title>
|
|
|
+ <script crossorigin="anonymous" integrity="sha512-PhuYrdDBtBeUjY7KTmjRYFFadw8uXXdTmzZyhCHZewYsqZJ0pxFCwU528jRoil42LXMW3ksegQT5zdjkfiR1IA==" src="https://lib.baomitu.com/vue/2.7.7/vue.min.js"></script>
|
|
|
+ <script crossorigin="anonymous" integrity="sha512-hybks56be1W1sC5RgFWfH7pn+uUlfCi6bPD8AbNvNlc7b1k69wwIxwhF05wobYemsndUkdoNWomx/kBD94xpgA==" src="https://lib.baomitu.com/element-ui/2.15.10/index.min.js"></script>
|
|
|
+ <link crossorigin="anonymous" integrity="sha512-2by4R3Ml3Olue9XwB86eM7YLPqZr1pOBFfdsSOFs/1SJ7NIOCz0QhK99lR7d4+B/aOYXOWnghUUV/gjaITrL1g==" href="https://lib.baomitu.com/element-ui/2.15.10/theme-chalk/index.min.css" rel="stylesheet">
|
|
|
+ <style type="text/css">
|
|
|
+ [v-cloak]{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .add-img {
|
|
|
+ width: 60px;
|
|
|
+ height: 60px;
|
|
|
+ border: 1px dashed #E6E6E6;
|
|
|
+ border-radius: 4px;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .display-flex {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .goods-images {
|
|
|
+ width: 60px;
|
|
|
+ height: 60px;
|
|
|
+ border-radius: 4px;
|
|
|
+ position: relative;
|
|
|
+ border: 1px solid #7438D5;
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ .label-auto {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ .del-image-btn {
|
|
|
+ position: absolute;
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ line-height: 14px;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: 50%;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 600;
|
|
|
+ background: #7438D5;
|
|
|
+ color: #fff;
|
|
|
+ top: -7px;
|
|
|
+ right: -7px;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <div id="app">
|
|
|
+ <el-form :model="form" ref="form" size="mini" v-cloak>
|
|
|
+ <el-form-item label="商品名称" prop="name">
|
|
|
+ <el-input v-model="form.name" maxlength="30" show-word-limit></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商品分类" prop="category_id">
|
|
|
+ <el-select v-model="form.category_id">
|
|
|
+ <el-option v-for="item in category" :key="item.id" :value="item.id" :label="item.name"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商品品牌" prop="brand">
|
|
|
+ <el-input v-model="form.brand" maxlength="20" show-word-limit></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商品描述" prop="describe">
|
|
|
+ <el-input v-model="form.describe" maxlength="50" show-word-limit></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否热销" prop="is_hot">
|
|
|
+ <el-radio v-model="form.is_hot" :label="0">否</el-radio>
|
|
|
+ <el-radio v-model="form.is_hot" :label="1">是</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否秒杀" prop="is_kill">
|
|
|
+ <el-radio v-model="form.is_kill" :label="0">否</el-radio>
|
|
|
+ <el-radio v-model="form.is_kill" :label="1">是</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-radio v-model="form.status" :label="parseInt(idx)" v-for="(item,idx) in status" :key="idx">{{item}}</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否维修商品" prop="is_kill">
|
|
|
+ <el-radio v-model="form.is_fix" :label="0">否</el-radio>
|
|
|
+ <el-radio v-model="form.is_fix" :label="1">是</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="轮播图" prop="logo">
|
|
|
+ <div class="display-flex" style="flex-wrap: wrap;">
|
|
|
+ <div class="goods-image-box display-flex" style="flex-wrap: wrap;"
|
|
|
+ v-if="form.logo">
|
|
|
+ <div class="goods-images" v-for="(it,index) in form.logo">
|
|
|
+ <img class="label-auto" :src="Fast.api.cdnurl(it)" style="border-radius: 4px;">
|
|
|
+ <div class="del-image-btn" @click="delImg(index)">
|
|
|
+ <img class="label-auto" src="/images/close.png">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="add-img display-flex" @click="addImg('image',null,false)"
|
|
|
+ v-if="form.logo.length<6">
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <span class="msg-box n-right" for="c-logo"></span>
|
|
|
- </div>
|
|
|
- <ul class="row list-inline faupload-preview" id="c-logo-pre"></ul>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2" for="c-video">视频:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <div class="input-group">
|
|
|
- <input id="c-video" class="form-control" size="50" name="row[video]" type="text" value="{$row.video|default=''}" data-rule="">
|
|
|
- <div class="input-group-addon no-border no-padding">
|
|
|
- <span><button type="button" id="plupload-video-logo" class="btn btn-danger plupload" data-input-id="c-video" data-mimetype="video/mp4" data-multiple="false" data-preview-id="c-video-pre"><i class="fa fa-upload"></i> 上传</button></span>
|
|
|
- <span><button type="button" id="fachoose-video-logo" class="btn btn-primary fachoose" data-input-id="c-video" data-mimetype="video/mp4" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="视频" prop="logo">
|
|
|
+ <div class="display-flex" style="flex-wrap: wrap;">
|
|
|
+ <div class="goods-image-box display-flex" style="flex-wrap: wrap;"
|
|
|
+ v-if="form.video">
|
|
|
+ <div class="goods-images">
|
|
|
+ <video class="label-auto" :src="Fast.api.cdnurl(form.video)" style="border-radius: 4px;">
|
|
|
+ <div class="del-image-btn" @click="delVideo">
|
|
|
+ <img class="label-auto" src="/images/close.png">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="add-img display-flex" @click="addImg('video',null,false)"
|
|
|
+ v-if="!form.video">
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <span class="msg-box n-right" for="c-video"></span>
|
|
|
- </div>
|
|
|
- <ul class="row list-inline faupload-preview" id="c-video-pre"></ul>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('尺寸')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {foreach name="$row['size']??[[]]" item="a"}
|
|
|
- <div class="skuItem sizeItem" key="{$key}">
|
|
|
- <input type="hidden" class="id" name="row[sku][_{$key}][id]" value="{$a.id|default=''}"/>
|
|
|
- 名称:<input class="form-control smInput skuName" name="row[sku][_{$key}][name]" type="text" placeholder="名称" value="{$a.name|default=''}">
|
|
|
- <a class="btn btn-sm delSku">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <div>
|
|
|
- <a class="btn btn-sm btnAddSku">添加</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('版本')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {foreach name="$row['sku']??[[]]" item="a"}
|
|
|
- <div class="skuItem specItem" key="{$key}">
|
|
|
- <input type="hidden" class="id" name="row[sku][_{$key}][id]" value="{$a.id|default=''}"/>
|
|
|
- 名称:<input class="form-control smInput skuName" name="row[sku][_{$key}][name]" type="text" placeholder="名称" value="{$a.name|default=''}">
|
|
|
- <a class="btn btn-sm delSku">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <div>
|
|
|
- <a class="btn btn-sm btnAddSku">添加</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('参数')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8 amountSet">
|
|
|
- {foreach name="$row['sku']?:[[]]" item="aa" key="aakey"}
|
|
|
- <div class="amountItem">
|
|
|
- <span class="itemName">{:$aa['name']??''}</span>
|
|
|
- {foreach name="$aa['amount_ladder']?:[[]]" item="a"}
|
|
|
- <div>
|
|
|
- 库存:<input class="form-control smInput skuNumStock" name="row[sku][_{$key}][num_stock]" type="number" placeholder="库存" value="{$a.num_stock|default=''}">
|
|
|
- 秒杀库存:<input class="form-control smInput skuNumStockKill" name="row[sku][_{$key}][num_stock_kill]" type="number" placeholder="库存" value="{$a.num_stock_kill|default=''}">
|
|
|
- 成本价:<input class="form-control smInput skuNumStock" name="row[sku][_{$key}][amount_cost]" type="number" placeholder="价格" value="{$a.amount_cost|default=''}">
|
|
|
- </div>
|
|
|
- <div class="amountItemOne">
|
|
|
- <input class="form-control smInput" name="row[amount_ladder][_{$aakey}][__{$key}][min]" type="number" placeholder="数量" value="{$a.min|default=''}">-
|
|
|
- <input class="form-control smInput" name="row[amount_ladder][_{$aakey}][__{$key}][max]" type="number" placeholder="数量" value="{$a.max|default=''}">,
|
|
|
- 售价<input class="form-control smInput" name="row[amount_ladder][_{$aakey}][__{$key}][amount]" type="number" placeholder="金额" value="{$a.amount|default=''}">
|
|
|
- <a class="btn btn-sm delAmountItem">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <a class="btn btn-info addAmountDetail">添加</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('秒杀价')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8 amountSetKill">
|
|
|
- {foreach name="$row['sku']?:[[]]" item="aa" key="aakey"}
|
|
|
- <div class="amountItem">
|
|
|
- <span class="itemName">{:$aa['name']??''}</span>
|
|
|
- {foreach name="$aa['amount_kill_ladder']?:[[]]" item="a"}
|
|
|
- <div class="amountItemOne">
|
|
|
- <input class="form-control smInput" name="row[amount_kill_ladder][_{$aakey}][__{$key}][min]" type="number" placeholder="数量" value="{$a.min|default=''}">-
|
|
|
- <input class="form-control smInput" name="row[amount_kill_ladder][_{$aakey}][__{$key}][max]" type="number" placeholder="数量" value="{$a.max|default=''}">,
|
|
|
- 售价<input class="form-control smInput" name="row[amount_kill_ladder][_{$aakey}][__{$key}][amount]" type="number" placeholder="金额" value="{$a.amount|default=''}">
|
|
|
- <a class="btn btn-sm delAmountItem">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <a class="btn btn-info addAmountDetail">添加</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <textarea id="c-content" class="form-control editor" rows="5" name="row[content]" cols="50">{$row.content|default=''}</textarea>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('规格参数')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {foreach name="$row['detail']??[['id'=>'','name'=>'','value'=>'']]" item="a"}
|
|
|
- <div class="detailItem">
|
|
|
- <input type="hidden" class="id" name="row[detail][_{$key}][id]" value="{$a.id}"/>
|
|
|
- <input class="form-control smInput name" name="row[detail][_{$key}][name]" type="text" placeholder="参数名" value="{$a.name}">
|
|
|
- <input class="form-control smInput value" name="row[detail][_{$key}][value]" type="text" placeholder="参数值" value="{$a.value}">
|
|
|
- <a class="btn btn-sm delDetail">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <div>
|
|
|
- <a class="btn btn-sm btnAddDetail" data-m="detail">添加</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-2">{:__('售后服务')}:</label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- {foreach name="$row['service']??[['id'=>'','name'=>'','value'=>'']]" item="a"}
|
|
|
- <div class="detailItem">
|
|
|
- <input type="hidden" class="id" name="row[service][_{$key}][id]" value="{$a.id}"/>
|
|
|
- <input class="form-control smInput name" name="row[service][_{$key}][name]" type="text" placeholder="参数名" value="{$a.name}">
|
|
|
- <input class="form-control smInput value" name="row[service][_{$key}][value]" type="text" placeholder="参数值" value="{$a.value}">
|
|
|
- <a class="btn btn-sm delDetail">删除</a>
|
|
|
- </div>
|
|
|
- {/foreach}
|
|
|
- <div>
|
|
|
- <a class="btn btn-sm btnAddDetail" data-m="service">添加</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <div class="form-group layer-footer">
|
|
|
- <label class="control-label col-xs-12 col-sm-2"></label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
|
|
- <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</form>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+<script>
|
|
|
+ let category={$category|json_encode};
|
|
|
+ let status={$status|json_encode};
|
|
|
+</script>
|
|
|
+</body>
|
|
|
+</html>
|