Files
liche/admin/views/items/goods/edit.php
T

712 lines
33 KiB
PHP

<link rel="stylesheet" type="text/css" href="/static/css/appitem/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="/static/css/appitem/AdminLTE.min.css">
<style>
.label-group-wrap {
margin-top: 10px;
font-size: 0;
}
.label-group {
display: inline-block;
margin-right: 4px;
margin-bottom: 16px;
font-size: 0;
white-space: nowrap;
}
.label-group-wrap .label, .label-group>.label {
font-size: 10px;
font-weight: normal;
margin-right: 1px;
white-space: normal;
line-height: 1.4;
}
.label {
font-weight: normal;
}
.label-group>span+a.label {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left: 1px solid #fff;
margin-left: -3px;
}
.label-group-wrap .label, .label-group>.label {
font-size: 10px;
font-weight: normal;
margin-right: 1px;
white-space: normal;
line-height: 1.4;
}
</style>
<div class="am-form am-form-horizontal" style="width: 100%;padding: 10px">
<div id="vue-edit">
<div class="am-panel am-panel-default">
<div class="am-panel-hd">
<span href="javascript:void(0)" style="font-size: 20px;">
车辆信息
</span>
</div>
<div class="am-panel-bd am-g">
<table width="100%" style="padding:10px 10px 10px 10px;">
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">品牌</div>
<select style="width: 200px;" v-model="info.brand_id" @change='autoList(2);'>
<option value="0">选择品牌</option>
<template v-for="(v,i) in showInfo['autoList'][1]">
<option :value="v.id">{{v.name}}</option>
</template>
</select>
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">车系</div>
<select style="width: 200px;" v-model="info.s_id" @change='autoList(3);'>
<option value="0">选择车系</option>
<template v-for="(v,i) in showInfo['autoList'][2]">
<option :value="v.id">{{v.name}}</option>
</template>
</select>
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">车型</div>
<select style="width: 200px;" v-model="info.v_id" @change="set_attr">
<option value="0">选择车型</option>
<template v-for="(v,i) in showInfo['autoList'][3]">
<option :value="v.id">{{v.name}}</option>
</template>
</select>
</div>
</td>
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">车身色</div>
<select style="width: 200px;" v-model="info.cor_id" @change="set_attr">
<option value="0">选择车身色</option>
<template v-for="(v,i) in showInfo['autoList'][4]">
<option :value="v.id">{{v.name}}</option>
</template>
</select>
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">内饰色</div>
<select style="width: 200px;" v-model="info.incor_id" @change="set_attr">
<option value="0">选择内饰色</option>
<template v-for="(v,i) in showInfo['autoList'][5]">
<option :value="v.id">{{v.name}}</option>
</template>
</select>
</div>
</td>
</tr>
<tr>
<td class="table-td" colspan="2">
<div class="input-group">
<div class="input-group-addon">精品加装</div>
<div class="label-group-wrap label-group-sortable" style="display: inline">
<div class="label-group" v-for="(v,i) in fines">
<span class="label label-default sort-shop-list" :data-id="v.id" :data-name="v.title"
:data-sort="i">{{v.title}}</span>
<a href="javascript:void(0);" @click="rm_fine(i)" class="label label-default"><i
class="fa fa-remove"></i></a>
</div>
</div>
<button type="button" class="am-btn am-btn-default am-btn-sm" @click="fine_modal">+</button>
</div>
</td>
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">车辆状态</div>
<select style="width: 200px;"
v-model="info.status">
<template v-for="(v,i) in showInfo['statusAry']">
<option :value="i">{{v}}</option>
</template>
</select>
</div>
</td>
<td class="table-td" colspan="2">
<div class="input-group">
<div class="input-group-addon">存放地址</div>
<select title="城市" style="display: inline;width: 20%" name="" v-model="info.city_id">
<option value="">选择城市</option>
<option :value="v.id" v-for="(v,i) in cityAry">{{v.name}}</option>
</select>
<select title="行政区" name="county_id" style="display: inline;width: 20%" v-model="info.county_id">
<option value="">选择行政区</option>
<option :value="v.id" v-for="(v,i) in countyAry">{{v.name}}</option>
</select>
<select title="地址" name="addr_id" style="display: inline;width: 60%" v-model="info.addr_id">
<option value="">选择地址</option>
<option :value="v.id" v-for="(v,i) in addrAry">{{v.title}}</option>
</select>
</div>
</td>
</tr>
</table>
<table width="100%" style="padding:10px 10px 10px 10px;">
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">VIN码</div>
<input type="text" v-model="info.vin" placeholder="请输入VIN码">
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">合格证号</div>
<input type="text" v-model="info.stdard_num" placeholder="请输入合格证号">
</div>
</td>
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">发动机号</div>
<input type="text" v-model="info.engine_num" placeholder="请输入发动机号">
</div>
</td>
<td class="table-td">
</td>
</tr>
</table>
<table width="100%" style="padding:10px 10px 10px 10px;">
<tr>
<!--<td class="table-td">
<div class="input-group">
<div class="input-group-addon">生产日期</div>
<input id="pro_time_id" type="text" value="<?= $info['pro_time'] ?>"
placeholder="请输入生产日期">
</div>
</td>-->
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">入库日期</div>
<input id="in_time_id" type="text" value="<?= $info['in_time'] ?>" placeholder="请输入或选择入库日期">
</div>
</td>
<!--<td class="table-td">
<div class="input-group">
<div class="input-group-addon">出库日期</div>
<input id="out_time_id" type="text" value="<?= $info['out_time'] ?>"
placeholder="请输入出库日期">
</div>
</td>-->
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">平台价</div>
<input type="text" v-model="info.ori_price" placeholder="请输入平台价">
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">折扣%</div>
<input type="text" v-model="info.discount" placeholder="请输入折扣%">
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">折扣金额</div>
<input type="text" v-model="info.dis_price" placeholder="请输入折扣金额">
</div>
</td>
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">开票日期</div>
<input id="bill_time_id" type="text" value="<?= $info['bill_time'] ?>"
placeholder="请输入开票日期">
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">发票号</div>
<input type="text" v-model="info.bill_num" placeholder="请输入发票号">
</div>
</td>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">发票金额</div>
<input type="text" v-model="info.bill_price" placeholder="请输入发票金额">
</div>
</td>
</tr>
<tr>
<td class="table-td">
<div class="input-group">
<div class="input-group-addon">采购成本</div>
<input type="text" v-model="info.buy_price" placeholder="请输入采购成本">
</div>
</td>
<td class="table-td" colspan="2"></td>
</tr>
</table>
<div class="am-form-group">
<a href="javascript:void(0);" @click='saveEdit();'
style="margin-left: 3.5rem;margin-top: 4rem;"
class="am-btn ml20 am-btn-sm am-btn-success w100">保存</a>
</div>
</div>
</div>
<div id="fine-modal" style="display: none;">
<div class="modal-body">
<table width="100%">
<tr>
<td width="20%">ID</td>
<td width="35%" style="font-weight: bold;padding-left: 8px;">精品</td>
<td width="40%" style="padding-right: 8px;"><label class="sr-only" for="search">搜精品</label>
<div class="input-group input-group-sm">
<input type="text" class="form-control" style="font-size: 1.2rem;font-weight: bold;"
v-model='modal_fine.title' placeholder="精品关键字">
<div class="input-group-btn">
<button type="button" @click='get_fines(0);' class="btn btn-default"></button>
</div>
</div>
</td>
</tr>
</table>
<div style="border-bottom: 1px solid #ddd;height: 1px;margin-top: 8px;"></div>
<table class="table table-middle">
<colgroup>
<col width="15%"/>
<col width="45%"/>
<col width="20%"/>
</colgroup>
<tbody>
<tr v-for="(v,i) in modal_fine.lists">
<td>{{v.id}}</td>
<td>{{v.title}}</td>
<td class="text-right">
<a v-if="v.checked==0 || !v.checked" href="javascript:void(0);" @click="set_fine(i,1)"
class="btn btn-primary btn-sm">选择</a>
<a v-else-if="v.checked==1" href="javascript:void(0);" @click="set_fine(i,0)"
class="btn btn-default btn-sm">移除</a>
</td>
</tr>
</tbody>
</table>
<div class="clearfix">
<span class="pull-left text-muted">{{modal_fine.page}}(每页{{modal_fine.size}},{{modal_fine.total}})</span>
<nav class="pull-right" aria-label="Page navigation">
<ul class="pagination pagination-sm">
<li v-if="modal_fine.page>1">
<a href="javascript:void(0);" @click="get_fines(-1);" aria-label="上一页">
<span class="glyphicon glyphicon-menu-left"></span>
</a>
</li>
<li v-if="modal_fine.next>0">
<a href="javascript:void(0);" @click="get_fines(1);" aria-label="下一页">
<span class="glyphicon glyphicon-menu-right"></span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
<script>
var vue_obj;
$(document).ready(function () {
vue_obj = new Vue({
el: '#vue-edit',
data: {
info: {},
showInfo: {'autoList': []},
cityAry:[],
countyAry:[],
addrAry:[],
fines:[],
modal_fine:{title:'', lists:[], selected:[], page:1, size:10, total:0}
},
mounted: function () {
var that = this;
that.info = <?=json_encode($info)?>;
that.showInfo = <?=json_encode($showInfo)?>;
that.init_citys();
that.init_fines();
},
computed: {},
created: function () {
},
updated: function () {
},
methods: {
autoList: function (type) {
var vm = this;
var pid = 0;
if (type == 2) {
if (vm.info.brand_id == 0) {
vm.info.brand_id = 0;
vm.info.s_id = 0;
vm.info.v_id = 0;
vm.info.cor_id = 0;
vm.info.incor_id = 0;
vm.showInfo['autoList'][2] = [];
vm.showInfo['autoList'][3] = [];
vm.showInfo['autoList'][4] = [];
vm.showInfo['autoList'][5] = [];
return;
}
pid = vm.info.brand_id;
} else if (type == 3) {
if (vm.info.s_id == 0) {
vm.info.s_id = 0;
vm.info.v_id = 0;
vm.info.cor_id = 0;
vm.info.incor_id = 0;
vm.showInfo['autoList'][3] = [];
vm.showInfo['autoList'][4] = [];
vm.showInfo['autoList'][5] = [];
return;
}
pid = vm.info.s_id;
}
$.ajax({
url: '/common/auto',
type: 'get',
dataType: 'json',
data: {
type: type,
pid: pid,
tp: 1,
},
success: function (data) {
if (data.data) {
if (type == 2) {
vm.info.s_id = 0;
vm.info.v_id = 0;
vm.info.cor_id = 0;
vm.info.incor_id = 0;
vm.showInfo['autoList'][2] = data.data;
vm.showInfo['autoList'][3] = [];
vm.showInfo['autoList'][4] = [];
vm.showInfo['autoList'][5] = [];
} else if (type == 3) {
vm.info.v_id = 0;
vm.info.cor_id = 0;
vm.info.incor_id = 0;
vm.showInfo['autoList'][3] = data.data[3];
vm.showInfo['autoList'][4] = data.data[4];
vm.showInfo['autoList'][5] = data.data[5];
}
}
},
});
},
saveEdit: function () {
var vm = this;
vm.info.pro_time = $('#pro_time_id').val();
vm.info.in_time = $('#in_time_id').val();
vm.info.out_time = $('#out_time_id').val();
vm.info.bill_time = $('#bill_time_id').val();
//获取精品
var fine_ids = [];
for(var i in vm.fines){
fine_ids.push(vm.fines[i]['id']);
}
vm.info.fine_ids = fine_ids;
$.ajax({
url: <?=json_encode($edit_url)?>,
type: 'post',
dataType: 'json',
data: {
info: vm.info
},
beforeSend: function () {
layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
},
success: function (data) {
loading = false;
if (data['code']) {
layer.msg(data.msg, {
icon: 1,
time: 2000
}, function () {
if (data.data.status == 1) {
$.form.href('#/items/goods/goods');
} else {
$.form.reload();
}
});
} else {
layer.msg(data.msg, {icon: 2});
}
},
complete: function () {
loading = false;
layer.closeAll('loading');
},
});
},
set_attr:function(){
var vm = this;
if(parseFloat(vm.info.ori_price) > 0){
//价格为空才联动获取裸车价
return;
}
if(vm.info.v_id > 0 && vm.info.cor_id>0 && vm.info.incor_id>0){
$.ajax({
url: '/auto/cars/json_get',
type: 'post',
dataType: 'json',
data: {
brand_id: vm.info.brand_id,
s_id: vm.info.s_id,
v_id: vm.info.v_id,
cor_id:vm.info.cor_id,
incor_id:vm.info.incor_id
},
success: function (res) {
if (res.data) {
vm.info.ori_price = res.data.price_car;
vm.$forceUpdate();
}
}
});
}
},
init_citys:function() {
var vm = this;
$.ajax({
type: 'get',
url: '/common/area',
dataType: 'json',
data: {
id: '350',
key: 'city',
type: 1
},
success: function (response) {
if (response.code == 1) {
vm.cityAry = response.data;
}
}
});
},
init_fines:function(){
var vm = this;
if(vm.info.fine_ids.length > 0){
$.ajax({
type: 'post',
url: '/auto/fine/json_lists',
dataType: 'json',
data: {
id: vm.info.fine_ids.join(','),
status:1
},
success:function(response){
if (response.code == 1) {
vm.fines = response.data.list;
}
}
});
}
},
fine_modal:function(){
//选择门店
var vm = this;
var selects = JSON.parse(JSON.stringify(vm.fines));
vm.modal_fine = {title:'', lists:[], selected:selects, page:1, size:10, total:0, next:0};
vm.get_fines();
layer.open({
type: 1,
area: ['50%', '80%'], //宽高
content: $('#fine-modal'),
title: '选取精品',
shade: false,
btn: ['选好了'],
yes: function (index) {
layer.close(index);
vm.fines = JSON.parse(JSON.stringify(vm.modal_fine.selected));
}
});
},
get_fines:function(page){
var vm = this;
if(0 == page){
vm.modal_fine.page = 1;
vm.modal_fine.total = 0;
vm.modal_fine.next = 0;
} else if(1 == page){
vm.modal_fine.page+=1;
} else if(-1 == page) {
vm.modal_fine.page-=1;
}
$.ajax({
type: 'post',
url: '/auto/fine/json_lists',
dataType: 'json',
data: {
page: vm.modal_fine.page,
size: vm.modal_fine.size,
status:1,
title:vm.modal_fine.title
},
success:function(response){
if (response.code == 1) {
vm.modal_fine.lists = response.data.list;
vm.modal_fine.total = response.data.total;
if(vm.modal_fine.page * vm.modal_fine.size < vm.modal_fine.total){
vm.modal_fine.next=1;
} else {
vm.modal_fine.next=0;
}
for(var i in vm.modal_fine.lists){
var fine = vm.modal_fine.lists[i];
fine.checked = 0;
for(var j in vm.modal_fine.selected){
var selected = vm.modal_fine.selected[j];
if(fine.id == selected.id){
fine.checked = 1;
}
}
}
}
}
});
},
set_fine:function(index, checked){
var vm = this;
var fine = vm.modal_fine.lists[index];
fine.checked = checked;
if(checked == 1){
var selected = {id:fine.id, title:fine.title};
vm.modal_fine.selected.push(selected);
} else {
for(var i in vm.modal_fine.selected){
selected = vm.modal_fine.selected[i];
if(fine.id == selected.id){
vm.modal_fine.selected.splice(i, 1);
break;
}
}
}
vm.$forceUpdate();
},
rm_fine:function(index){
var vm = this;
vm.fines.splice(index, 1);
}
},
watch:{
'info.city_id':function(nv, ov){
var that = this;
if(nv == ''){
that.countyAry = [];
that.info.county_id = '';
} else {
if(nv.substring(0,4) != that.info.county_id.substring(0, 4)){
that.info.county_id = '';
}
$.ajax({
type: 'get',
url: '/common/area',
dataType: 'json',
data: {
id: nv,
key:'county',
type:1
},
success:function(response){
if (response.code == 1) {
that.countyAry = response.data;
}
}
});
}
},
'info.county_id':function(nv, ov){
var that = this;
if(nv == ''){
that.addrAry = [];
that.info.addr_id = '';
} else {
$.ajax({
type: 'get',
url: '/sys/addr/json_lists',
dataType: 'json',
data: {
county_id: nv,
status:1
},
success:function(response){
if (response.code == 1) {
that.addrAry = response.data.lists;
if(that.info.addr_id>0){
var addr_id = '';
for(var i in that.addrAry){
if(that.info.addr_id == that.addrAry[i].id){
addr_id = that.info.addr_id;
break;
}
}
that.info.addr_id = addr_id;
}
}
}
});
}
}
}
});
});
require(['laydate'], function (laydate) {
//日期范围
laydate.render({
elem: '#pro_time_id', type: 'datetime'
});
laydate.render({
elem: '#in_time_id', type: 'datetime'
});
laydate.render({
elem: '#out_time_id', type: 'datetime'
});
laydate.render({
elem: '#bill_time_id', type: 'datetime'
});
});
</script>
<style type="text/css">
.input-group {
width: 100%;
padding-right: 30px;
}
.input-group-addon {
padding: 0px 10px 0px 0px;
font-size: 1.6rem;
font-weight: normal;
line-height: 0px;
color: #333;
text-align: right;
background-color: #fff;
border: 0px solid #fff;
border-radius: 0px;
width: 120px;
}
.table-td {
width: 20%;
padding-top: 15px;
line-height: 37px;
font-size: 1.6rem;
}
</style>