文件
chengduzhongchuliang/public/assets/js/backend/granary.js

686 行
31 KiB
JavaScript

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
var vue = new Vue({
el: '#vue',
data: {
contentType: 'one',
varietiesType: 'one',
varietiesList: {
one: ['菜籽油', '大豆油'],
two: ['稻谷', '小麦', '玉米'],
},
contentFields: {
"one": {
"tankCapacity": "",
"tankType": "",
"varieties": "",
"nature": "",
"storageNum": "",
"productArea": "",
"addr": "",
"machiningYear": "",
"enterTime": "",
"level": "",
"color": "",
"odorAndTaste": "",
"waterVolatileCompounds": "",
"insolubleImpurities": "",
"acidValue": "",
"peroxideValue": "",
"heating": "",
"residualSolventContent": "",
"TankDiameter": "",
"oilLoadingHeight": "",
"volume": "",
"oilVolume": "",
"managementForm": "",
"custodian": ""
},
"two": {
"code": "",
"warehouseType": "",
"capacity": "",
"varieties": "",
"nature": "",
"addr": "",
"harvestYear": "",
"enterTime": "",
"storageNum": "",
"level": "",
"roughnessRate": "",
"impurity": "",
"water": "",
"volume": "",
"decVolume": "",
"riceGrains": "",
"managementForm": "",
"length": "",
"width": "",
"diam": "",
"height": "",
"storageMethod": "",
"custodian": ""
},
"three": {
"code": "",
"warehouseType": "",
"capacity": "",
"varieties": "",
"nature": "",
"addr": "",
"harvestYear": "",
"enterTime": "",
"storageNum": "",
"level": "",
"weight": "",
"impurity": "",
"water": "",
"volume": "",
"decVolume": "",
"imperfect": "",
"managementForm": "",
"length": "",
"width": "",
"diam": "",
"height": "",
"storageMethod": "",
"custodian": ""
}
},
contentNewFields: {
"one": {
"tankCapacity": "",
"tankType": "",
"varieties": "",
"nature": "",
"storageNum": "",
"productArea": "",
"addr": "",
"machiningYear": "",
"enterTime": "",
"level": "",
"color": "",
"odorAndTaste": "",
"waterVolatileCompounds": "",
"insolubleImpurities": "",
"acidValue": "",
"peroxideValue": "",
"heating": "",
"residualSolventContent": "",
"TankDiameter": "",
"oilLoadingHeight": "",
"volume": "",
"oilVolume": "",
"managementForm": "",
"custodian": ""
},
"two": {
"code": "",
"warehouseType": "",
"capacity": "",
"varieties": "",
"nature": "",
"addr": "",
"harvestYear": "",
"enterTime": "",
"storageNum": "",
"level": "",
"roughnessRate": "",
"impurity": "",
"water": "",
"volume": "",
"decVolume": "",
"riceGrains": "",
"managementForm": "",
"length": "",
"width": "",
"diam": "",
"height": "",
"storageMethod": "",
"custodian": ""
},
"three": {
"code": "",
"warehouseType": "",
"capacity": "",
"varieties": "",
"nature": "",
"addr": "",
"harvestYear": "",
"enterTime": "",
"storageNum": "",
"level": "",
"weight": "",
"impurity": "",
"water": "",
"volume": "",
"decVolume": "",
"imperfect": "",
"managementForm": "",
"length": "",
"width": "",
"diam": "",
"height": "",
"storageMethod": "",
"custodian": ""
}
},
typeList: [],
chinaList: [],
activeName: 'one',
// 表格当前页数据
tableData: [],
// 多选数组
multipleSelection: [],
// 搜索条件
key: '',
// 默认每页数据量
pageSize: 50,
// 当前页码
currentPage: 1,
// 默认数据总数
totalCount: 0,
// 列表加载遮罩
listLoading: false,
formData: {},
addDialog: false,
submitLoading: false,
title: '',
isCustomVariety: false,
customVariety: '',
// 类型:rapeseed=菜籽油、bean=大豆油、wheat=小麦、paddy=稻谷、corn=玉米
typeOptList: [{
id: '',
name: '全部'
}, {
id: 'rapeseed',
name: '菜籽油'
}, {
id: 'bean',
name: '大豆油'
}, {
id: 'wheat',
name: '小麦'
}, {
id: 'paddy',
name: '稻谷'
}, {
id: 'corn',
name: '玉米'
}],
// 搜索字段
search: {
startTime: '',
endTime: '',
keyword: '',
china: [],
granary_type: 0,
varieties: '全部',
type: '',
sort: 'id',
},
searchOpt: [{
id: 1,
value: '粮仓名称'
}, {
id: 2,
value: '仓库储存点'
}, {
id: 3,
value: '仓号'
}],
numList: [10, 11, 12, 13, 14, 15, 16, 17, 18, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43],
// 表单验证规则
rules: {
name: [{
required: true,
message: '请您输入粮仓名称',
trigger: 'blur'
}],
storage: [{
required: true,
message: '请您输入仓库储存点',
trigger: 'blur'
}],
num: [{
required: true,
message: '请您选择仓号',
trigger: 'blur'
}],
},
// 时间格式化
dateFormat: function (row, column) {
var date = row[column.property];
if (date === undefined || date === 0) {
return '';
}
return moment(date * 1000).format("YYYY-MM-DD HH:mm:ss");
}
},
created() {
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
methods: {
// 直达中心库大屏
openCenterScreen() {
window.open('/screen/index.html', '_blank');
},
// 直达习水库大屏
openXishuiScreen() {
window.open('/screen/xishui.html', '_blank');
},
// 刷新页面
refreshPage() {
this.search = {
startTime: '',
endTime: '',
keyword: '',
type: '',
granary_type: 0,
varieties: '全部',
china: [],
};
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
// 仓号选择或任意输入
handleSelectNum(e) {
if (!e && e !== 0) return;
let num = parseInt(e, 10);
if (isNaN(num)) return;
this.formData.num = num;
if (this.title === '添加') {
this.formData.granary_type = num > 18 ? 2 : 1;
this.changeGranaryType(this.formData.granary_type);
}
},
// 自由切换仓型(1: 圆型油罐,2: 房型平房仓)
changeGranaryType(type) {
this.formData.granary_type = type;
if (type === 1) {
this.varietiesType = 'one';
this.contentType = 'one';
if (this.formData.varieties !== '菜籽油' && this.formData.varieties !== '大豆油' && !this.isCustomVariety) {
this.formData.varieties = '菜籽油';
}
} else {
this.varietiesType = 'two';
if (this.formData.varieties === '菜籽油' || this.formData.varieties === '大豆油') {
this.formData.varieties = '稻谷';
this.contentType = 'two';
} else if (this.formData.varieties === '小麦' || this.formData.varieties === '玉米') {
this.contentType = 'three';
} else if (!this.isCustomVariety) {
this.contentType = 'two';
}
}
this.contentFields[this.contentType]['varieties'] = this.formData.varieties;
},
// 品种切换
varietiesChange(e) {
if (e === '自定义') {
this.isCustomVariety = true;
if (this.customVariety) {
this.formData.varieties = this.customVariety;
}
} else {
this.isCustomVariety = false;
this.customVariety = '';
this.formData.varieties = e;
if (e === '菜籽油' || e === '大豆油') {
this.contentType = 'one';
this.formData.granary_type = 1;
this.varietiesType = 'one';
} else if (e === '小麦' || e === '玉米') {
this.contentType = 'three';
this.formData.granary_type = 2;
this.varietiesType = 'two';
} else {
this.contentType = 'two';
this.formData.granary_type = 2;
this.varietiesType = 'two';
}
}
this.contentFields[this.contentType]['varieties'] = this.formData.varieties;
},
// 自定义品种输入变更
handleCustomVarietyChange(val) {
this.formData.varieties = val;
if (val && val.indexOf('油') !== -1) {
this.contentType = 'one';
this.formData.granary_type = 1;
this.varietiesType = 'one';
} else {
this.formData.granary_type = 2;
this.varietiesType = 'two';
}
this.contentFields[this.contentType]['varieties'] = val;
},
// 选择图片
selectImage() {
Fast.api.open("general/attachment/select?multiple=false", '选择图片', {
callback: res => {
this.$set(this.formData, 'image', res.url);
}
});
},
handleClearDate(field) {
if (!this.search[field]) {
// 重新加载
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
}
},
handleChinaChange(e) {
if (e.length === 0) {
// 重新加载
this.$set(this.search, 'china', '');
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
}
},
handleTableClick(tab, event) {
},
// 添加/编辑
openAddDialog(type, item) {
this.addDialog = true;
if (type === 'add') {
this.title = '添加';
this.isCustomVariety = false;
this.customVariety = '';
this.contentFields = JSON.parse(JSON.stringify(this.contentNewFields));
this.formData = {
id: 0,
name: '',
image: '',
storage: '成都直属库有限公司本部',
num: '',
screenPosition: '',
granary_type: 1,
varieties: '菜籽油',
content: []
};
this.contentType = 'one';
this.varietiesType = 'one';
} else {
this.title = '编辑';
let isPreset = ['菜籽油', '大豆油', '稻谷', '小麦', '玉米'].indexOf(item.varieties) !== -1;
this.isCustomVariety = !isPreset;
this.customVariety = isPreset ? '' : item.varieties;
this.formData = {
id: item.id,
name: item.name,
image: item.image,
storage: item.storage,
num: item.num,
screenPosition: (item.content || {}).screenPosition || '',
old_num: item.num,
granary_type: item.granary_type || (item.num > 18 ? 2 : 1),
varieties: item.varieties,
content: []
};
if (item.varieties === '菜籽油' || item.varieties === '大豆油' || (item.varieties && item.varieties.indexOf('油') !== -1)) {
this.contentType = 'one';
} else if (item.varieties === '小麦' || item.varieties === '玉米') {
this.contentType = 'three';
} else {
this.contentType = 'two';
}
if (this.formData.granary_type == 1) {
this.varietiesType = 'one';
} else {
this.varietiesType = 'two';
}
this.contentFields[this.contentType] = JSON.parse(JSON.stringify(item.content || {}));
}
},
// 查看详情
openDetail(item) {
layer.open({
type: 2,
title: item.name,
shadeClose: false,
scrollbar: false,
maxmin: true,
shade: 0.2,
area: ['80%', '60%'],
content: 'detail?id=' + item.id
});
},
handelTypeRadio(e) {
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
// 从服务器读取数据
loadData(key, currentPage, pageSize, sort) {
this.listLoading = true;
$.getJSON('granary/index', {
keyword: key,
type: this.search.type,
start_time: this.search.startTime,
end_time: this.search.endTime,
granary_type: this.search.granary_type,
varieties: this.search.varieties,
page: currentPage,
rows: pageSize,
sort: sort,
china: this.search.china
}, data => {
this.totalCount = data.total;
this.tableData = data.list;
this.chinaList = data.chinaList;
this.typeList = data.typeList;
this.contentFields = data.contentFields;
this.listLoading = false;
});
},
submit() {
this.$refs.form.validate(valid => {
if (!valid) {
this._sweetMsg({
type: 'warning',
content: '请您完善仓库信息'
});
return false;
}
if (!this.formData.varieties || this.formData.varieties === '自定义') {
this._sweetMsg({
type: 'warning',
content: '请您输入或选择存储品种'
});
return false;
}
let fields = this.contentFields[this.contentType] || {};
// 智能缺省填充:对未填写的非关键参数自动补全默认占位符 '-',避免粗暴拦截阻断创建
for (let key in fields) {
if (fields[key] === '' || fields[key] === null || fields[key] === undefined) {
fields[key] = '-';
}
}
fields['varieties'] = this.formData.varieties;
fields['screenPosition'] = this.formData.screenPosition || '';
// 提交
let loading = this.$loading({
lock: true,
text: '正在提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.3)'
});
const payload = Object.assign({}, this.formData, {content: fields});
delete payload.screenPosition;
$.ajax({
url: 'granary/add',
type: 'POST',
data: payload,
success: res => {
loading.close();
if (res.code === 200) {
this.$message.success(res.msg);
this.addDialog = false;
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
} else {
this.$message.warning(res.msg);
}
}
})
});
},
// 排序
sortChange(e) {
},
// 搜索
searchData() {
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
// 每页显示数据量变更
handleSizeChange(val) {
this.pageSize = val;
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
// 页码变更
handleCurrentChange(val) {
this.currentPage = val;
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
// 多选响应
handleSelectionChange(val) {
this.multipleSelection = val;
},
// 批量删除
del() {
if (this.multipleSelection.length === 0) {
this.$message.warning('请选择至少一条粮仓进行删除!');
return;
}
var array = [];
this.multipleSelection.forEach((row) => {
array.push(row.id);
});
this.$confirm('您确定要删除所选的粮仓吗?, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.ajax({
url: 'granary/dell',
data: "id=" + array,
type: "POST",
dataType: 'json',
success: res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
} else {
this.$message.warning(res.msg);
}
},
error: function (er) {
}
});
}).catch(() => {
});
},
// 单条删除
dell(id) {
this.$confirm('您确定要删除此粮仓吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.ajax({
url: 'granary/dell',
data: {
id
},
type: "POST",
dataType: 'json',
success: res => {
if (res.code === 200) {
this.$message.success(res.msg);
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
} else {
this.$message.warning(res.msg);
}
},
error: function (er) {
}
});
}).catch(() => {
});
},
handleClearSelect(field) {
// 重新加载
this.$set(this.search, field, '');
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
},
handleClearSearchInp() {
if (this.search.type) {
// 重新加载
this.loadData(this.search.keyword, this.currentPage, this.pageSize, this.search.sort);
}
},
// 弹窗提示框
_sweetMsg(obj) {
swal({
title: obj.title || '温馨提示',
text: obj.content,
type: obj.type || 'success',
confirmButtonColor: "#7367f0",
confirmButtonText: '确定'
});
},
// 询问框
_sweetConfirm(obj, confirmCallBack = () => {
}, cancelCallBck = () => {
}) {
swal({
title: obj.title,
text: obj.content || '温馨提示',
type: 'info',
showCancelButton: true,
confirmButtonColor: '#7367f0',
confirmButtonText: '',
cancelButtonText: '取消',
closeOnConfirm: false
}, function (confirm) {
if (confirm) {
confirmCallBack();
} else {
cancelCallBck();
}
});
}
}
});
},
detail: function () {
},
edit: function () {
Controller.api.bindevent();
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});