projects/mesxc-zhp #161
							
								
								
									
										8
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								.env.dev
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
###
 | 
			
		||||
 # @Author: Do not edit
 | 
			
		||||
 # @Date: 2023-08-29 09:40:39
 | 
			
		||||
 # @LastEditTime: 2023-12-13 16:52:10
 | 
			
		||||
 # @LastEditors: zhp
 | 
			
		||||
 # @LastEditTime: 2023-12-14 14:02:40
 | 
			
		||||
 # @LastEditors: DY
 | 
			
		||||
 # @Description:
 | 
			
		||||
###
 | 
			
		||||
# 开发环境配置
 | 
			
		||||
@@ -13,8 +13,8 @@ VUE_APP_TITLE = MES系统
 | 
			
		||||
 | 
			
		||||
# 芋道管理系统/开发环境
 | 
			
		||||
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
 | 
			
		||||
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.49:48082'
 | 
			
		||||
# VUE_APP_BASE_API = 'http://192.168.1.8:48082'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-10-21 11:50:46
 | 
			
		||||
 * @LastEditTime: 2023-11-15 15:56:14
 | 
			
		||||
 * @LastEditTime: 2023-12-14 10:57:24
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
@@ -65,4 +65,31 @@ export function getHotMaterialList(query) {
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建原料质量检测条目
 | 
			
		||||
export function createHotMaterialCheck(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/core-hot-material-check/create',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 更新原料质量检测条目
 | 
			
		||||
export function updateHotMaterialCheck(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/core-hot-material-check/update',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获得质量检测条目列表
 | 
			
		||||
export function getHotCheckList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/core-hot-material-check/listByMaterial',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								src/api/report/glass.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/api/report/glass.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-12-08 10:26:48
 | 
			
		||||
 * @LastEditTime: 2023-12-13 17:16:00
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
// 创建原片自动报
 | 
			
		||||
export function createGlass(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/create',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 批量更新原片自动报
 | 
			
		||||
export function updateGlass(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/updatePlus',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
// 更新原片自动报
 | 
			
		||||
export function updateGlassRemark(data) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/update',
 | 
			
		||||
    method: 'put',
 | 
			
		||||
    data: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获得原片自动报
 | 
			
		||||
export function getGlass(id) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/get?id=' + id,
 | 
			
		||||
    method: 'get'
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获得原片分页
 | 
			
		||||
export function getGlassPage(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/listPlus',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导出原片自动报 Excel
 | 
			
		||||
export function exportGlasscExcel(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/base/report-auto-original-glass/export-excel',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query,
 | 
			
		||||
    responseType: 'blob'
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
@@ -15,6 +15,7 @@
 | 
			
		||||
        :headers="headers"
 | 
			
		||||
        :file-list="fileList"
 | 
			
		||||
        :on-preview="handlePictureCardPreview"
 | 
			
		||||
        :disabled="disabled"
 | 
			
		||||
        :class="{hide: this.fileList.length >= this.limit}"
 | 
			
		||||
    >
 | 
			
		||||
      <i class="el-icon-plus"></i>
 | 
			
		||||
@@ -44,6 +45,7 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getAccessToken } from "@/utils/auth";
 | 
			
		||||
import { flatten } from 'min-dash';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
@@ -67,6 +69,10 @@ export default {
 | 
			
		||||
    isShowTip: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true
 | 
			
		||||
    },
 | 
			
		||||
    disabled: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -122,14 +128,16 @@ export default {
 | 
			
		||||
    // 上传成功回调
 | 
			
		||||
    handleUploadSuccess(res) {
 | 
			
		||||
      // edit by 芋道源码
 | 
			
		||||
      this.uploadList.push({ name: res.data, url: res.data });
 | 
			
		||||
      if (this.uploadList.length === this.number) {
 | 
			
		||||
        this.fileList = this.fileList.concat(this.uploadList);
 | 
			
		||||
        this.uploadList = [];
 | 
			
		||||
        this.number = 0;
 | 
			
		||||
        this.$emit("input", this.listToString(this.fileList));
 | 
			
		||||
        this.$modal.closeLoading();
 | 
			
		||||
      if (res.code !== 500) {
 | 
			
		||||
        this.uploadList.push({ name: res.data, url: res.data });
 | 
			
		||||
        if (this.uploadList.length === this.number) {
 | 
			
		||||
          this.fileList = this.fileList.concat(this.uploadList);
 | 
			
		||||
          this.uploadList = [];
 | 
			
		||||
          this.number = 0;
 | 
			
		||||
          this.$emit("input", this.listToString(this.fileList));
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      this.$modal.closeLoading();
 | 
			
		||||
    },
 | 
			
		||||
    // 上传前loading加载
 | 
			
		||||
    handleBeforeUpload(file) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-22 10:27:50
 | 
			
		||||
 * @LastEditTime: 2023-12-12 16:04:44
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -15,25 +15,26 @@
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="客户编号" prop="code">
 | 
			
		||||
					<el-input v-model="dataForm.code" clearable placeholder="请输入客户编号" />
 | 
			
		||||
					<el-input v-model="dataForm.code" :disabled="isdetail" clearable placeholder="请输入客户编号" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="客户名称" prop="name">
 | 
			
		||||
					<el-input v-model="dataForm.name" clearable placeholder="请输入客户名称" />
 | 
			
		||||
					<el-input v-model="dataForm.name" :disabled="isdetail" clearable placeholder="请输入客户名称" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="联系人" prop="contact">
 | 
			
		||||
					<el-input v-model="dataForm.contact" clearable placeholder="请输入联系人" />
 | 
			
		||||
					<el-input v-model="dataForm.contact" :disabled="isdetail" clearable placeholder="请输入联系人" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="联系电话" prop="telephone">
 | 
			
		||||
					<el-input
 | 
			
		||||
						v-model="dataForm.telephone"
 | 
			
		||||
						:disabled="isdetail"
 | 
			
		||||
						maxlength="11"
 | 
			
		||||
						placeholder="请输入联系电话" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
@@ -42,22 +43,34 @@
 | 
			
		||||
		<el-form-item label="地址" prop="address">
 | 
			
		||||
			<el-input
 | 
			
		||||
				v-model="dataForm.address"
 | 
			
		||||
				:disabled="isdetail"
 | 
			
		||||
				placeholder="请输入地址" />
 | 
			
		||||
		</el-form-item>
 | 
			
		||||
		<el-form-item label="备注" prop="remark">
 | 
			
		||||
			<el-input
 | 
			
		||||
				v-model="dataForm.remark"
 | 
			
		||||
				:disabled="isdetail"
 | 
			
		||||
				placeholder="请输入备注" />
 | 
			
		||||
		</el-form-item>
 | 
			
		||||
		<el-form-item label="特殊要求" prop="specialRequirements">
 | 
			
		||||
			<el-input
 | 
			
		||||
				type="textarea"
 | 
			
		||||
				v-model="dataForm.specialRequirements"
 | 
			
		||||
				:disabled="isdetail"
 | 
			
		||||
				placeholder="请输入备注" />
 | 
			
		||||
				<imageUpload v-model="files" :disabled="isdetail" :limit="5"/>
 | 
			
		||||
		</el-form-item>
 | 
			
		||||
	</el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from '../../core/mixins/basic-add';
 | 
			
		||||
import { createCustomer, updateCustomer, getCustomer, getCode } from "@/api/base/coreCustomer";
 | 
			
		||||
import ImageUpload from '@/components/ImageUpload';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	mixins: [basicAdd],
 | 
			
		||||
	components: { ImageUpload },
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			urlOptions: {
 | 
			
		||||
@@ -67,6 +80,8 @@ export default {
 | 
			
		||||
				updateURL: updateCustomer,
 | 
			
		||||
				infoURL: getCustomer
 | 
			
		||||
			},
 | 
			
		||||
			files: [],
 | 
			
		||||
			isdetail: false,
 | 
			
		||||
			dataForm: {
 | 
			
		||||
        id: undefined,
 | 
			
		||||
        code: undefined,
 | 
			
		||||
@@ -74,7 +89,9 @@ export default {
 | 
			
		||||
        telephone: undefined,
 | 
			
		||||
				contact: undefined,
 | 
			
		||||
				address: undefined,
 | 
			
		||||
        remark: undefined
 | 
			
		||||
        remark: undefined,
 | 
			
		||||
				specialRequirements: undefined,
 | 
			
		||||
				files: []
 | 
			
		||||
			},
 | 
			
		||||
			dataRule: {
 | 
			
		||||
        code: [{ required: true, message: "客户编号不能为空", trigger: "blur" }],
 | 
			
		||||
@@ -100,6 +117,66 @@ export default {
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {},
 | 
			
		||||
	methods: {}
 | 
			
		||||
	methods: {
 | 
			
		||||
		init(id, isdetail) {
 | 
			
		||||
      this.dataForm.id = id || "";
 | 
			
		||||
			this.isdetail = isdetail || false;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      if (this.urlOptions.getOption) {
 | 
			
		||||
        this.getArr()
 | 
			
		||||
      }
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          this.urlOptions.infoURL(id).then(response => {
 | 
			
		||||
            this.dataForm = response.data;
 | 
			
		||||
            if (this.setData) {
 | 
			
		||||
              this.setDataForm()
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          if (this.urlOptions.isGetCode) {
 | 
			
		||||
            this.getCode()
 | 
			
		||||
          }
 | 
			
		||||
				}
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		// 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
			console.log('122', this.files)
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
				this.dataForm.files = []
 | 
			
		||||
				if (this.files.length > 0) {
 | 
			
		||||
					this.files.forEach(item => {
 | 
			
		||||
						const temp = {
 | 
			
		||||
							fileType: 1,
 | 
			
		||||
							fileUrl: item
 | 
			
		||||
						}
 | 
			
		||||
						this.dataForm.files.push(temp)
 | 
			
		||||
					})
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
        // 修改的提交
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          this.urlOptions.updateURL(this.dataForm).then(response => {
 | 
			
		||||
            this.$modal.msgSuccess("修改成功");
 | 
			
		||||
            this.visible = false; 
 | 
			
		||||
            this.$emit("refreshDataList");
 | 
			
		||||
          });
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        // 添加的提交
 | 
			
		||||
        this.urlOptions.createURL(this.dataForm).then(response => {
 | 
			
		||||
          this.$modal.msgSuccess("新增成功");
 | 
			
		||||
          this.visible = false;
 | 
			
		||||
          this.$emit("refreshDataList");
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -88,13 +88,19 @@ export default {
 | 
			
		||||
			},
 | 
			
		||||
			tableProps,
 | 
			
		||||
			tableBtn: [
 | 
			
		||||
				this.$auth.hasPermi(`base:core-customer:detail`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'detail',
 | 
			
		||||
							btnName: '详情',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
				this.$auth.hasPermi(`base:core-customer:update`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'edit',
 | 
			
		||||
							btnName: '编辑',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
          this.$auth.hasPermi(`base:core-customer:delete`)
 | 
			
		||||
        this.$auth.hasPermi(`base:core-customer:delete`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'delete',
 | 
			
		||||
							btnName: '删除',
 | 
			
		||||
@@ -171,6 +177,13 @@ export default {
 | 
			
		||||
					console.log(val);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		otherMethods(val) {
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.addOrEditTitle = "详情";
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(val.data.id, true);
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										65
									
								
								src/views/base/coreHotMaterial/SmallTitle.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/views/base/coreHotMaterial/SmallTitle.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2023-08-01 15:27:31
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2023-08-01 16:25:54
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
	<div :class="[className, { 'p-0': noPadding }]">
 | 
			
		||||
		<slot />
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
	props: {
 | 
			
		||||
		size: {
 | 
			
		||||
			// 取值范围:  xl lg md sm
 | 
			
		||||
			type: String,
 | 
			
		||||
			default: 'de',
 | 
			
		||||
			validator: function (val) {
 | 
			
		||||
				return ['xl', 'lg', 'de', 'md', 'sm'].indexOf(val) !== -1;
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		noPadding: {
 | 
			
		||||
			type: Boolean,
 | 
			
		||||
			default: false,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	computed: {
 | 
			
		||||
		className: function () {
 | 
			
		||||
			return `${this.size}-title`;
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
$pxls: (xl, 28px) (lg, 24px) (de, 20px) (md, 18px) (sm, 16px);
 | 
			
		||||
$mgr: 8px;
 | 
			
		||||
@each $size, $height in $pxls {
 | 
			
		||||
	.#{$size}-title {
 | 
			
		||||
		font-size: 18px;
 | 
			
		||||
		line-height: $height;
 | 
			
		||||
		color: #000;
 | 
			
		||||
		font-weight: 500;
 | 
			
		||||
		font-family: '微软雅黑', 'Microsoft YaHei', Arial, Helvetica, sans-serif;
 | 
			
		||||
 | 
			
		||||
		&::before {
 | 
			
		||||
			content: '';
 | 
			
		||||
			display: inline-block;
 | 
			
		||||
			vertical-align: top;
 | 
			
		||||
			width: 4px;
 | 
			
		||||
			height: $height + 2px;
 | 
			
		||||
			border-radius: 1px;
 | 
			
		||||
			margin-right: $mgr;
 | 
			
		||||
			background-color: #0b58ff;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.p-0 {
 | 
			
		||||
	padding: 0;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-27 20:12:00
 | 
			
		||||
 * @LastEditTime: 2023-12-14 13:52:42
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -15,19 +15,19 @@
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="原料名称" prop="name">
 | 
			
		||||
					<el-input v-model="dataForm.name" clearable placeholder="请输入原料名称" />
 | 
			
		||||
					<el-input v-model="dataForm.name" :disabled="isdetail" clearable placeholder="请输入原料名称" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="原料编号" prop="code">
 | 
			
		||||
					<el-input v-model="dataForm.code" clearable placeholder="请输入原料编号" />
 | 
			
		||||
					<el-input v-model="dataForm.code" :disabled="isdetail" clearable placeholder="请输入原料编号" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-row :gutter="20">
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
				<el-form-item label="每日消耗量" prop="dailyCost">
 | 
			
		||||
					<el-input-number v-model="dataForm.dailyCost" controls-position="right" clearable placeholder="请输入每日消耗量" style="width: 100%" />
 | 
			
		||||
					<el-input-number v-model="dataForm.dailyCost" :disabled="isdetail" :min="0" controls-position="right" clearable placeholder="请输入每日消耗量" style="width: 100%" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="12">
 | 
			
		||||
@@ -35,6 +35,7 @@
 | 
			
		||||
					<el-select
 | 
			
		||||
						v-model="dataForm.unit"
 | 
			
		||||
						filterable
 | 
			
		||||
						:disabled="isdetail"
 | 
			
		||||
						style="width: 100%"
 | 
			
		||||
						placeholder="请选择单位">
 | 
			
		||||
						<el-option
 | 
			
		||||
@@ -47,17 +48,58 @@
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
		<el-form-item label="备注" prop="remark">
 | 
			
		||||
			<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
 | 
			
		||||
			<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
 | 
			
		||||
		</el-form-item>
 | 
			
		||||
 | 
			
		||||
		<small-title
 | 
			
		||||
		  :size="'sm'"
 | 
			
		||||
			style="margin: 16px 0; padding-left: 8px; font-size: 14px"
 | 
			
		||||
			:no-padding="true">
 | 
			
		||||
			质量信息
 | 
			
		||||
		</small-title>
 | 
			
		||||
		<div v-if="!isdetail" class="action_btn">
 | 
			
		||||
			<template>
 | 
			
		||||
				<span style="display: inline-block;">
 | 
			
		||||
					<el-button type="text" @click="addNew()" icon="el-icon-plus">新增</el-button>
 | 
			
		||||
				</span>
 | 
			
		||||
			</template>
 | 
			
		||||
		</div>
 | 
			
		||||
		<el-row :gutter="20" v-for="(item, index) in test" :key="index">
 | 
			
		||||
			<el-col :span="9">
 | 
			
		||||
				<el-form-item label="成分" label-width="50px" prop="name1">
 | 
			
		||||
					<el-input v-model="item.name" :disabled="isdetail" :min="0" controls-position="right" clearable placeholder="请输入成分" style="width: 100%" />
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
			<el-col :span="15">
 | 
			
		||||
				<el-form-item label="标准含量" prop="unit1">
 | 
			
		||||
					<el-row :gutter="5">
 | 
			
		||||
						<el-col :span="1">
 | 
			
		||||
							<el-tooltip content="如果标准含量不是一个范围,而是一个值,在最大值、最小值中填入相同数字即可。" placement="top">
 | 
			
		||||
								<span style="margin-left: -15px"><i class="el-icon-question"></i></span>
 | 
			
		||||
							</el-tooltip>
 | 
			
		||||
						</el-col>
 | 
			
		||||
						<el-col :span="11">
 | 
			
		||||
							<el-input-number v-model="item.minValue" :disabled="isdetail" :min="0" controls-position="right" clearable placeholder="最小值" style="width: 100%" />
 | 
			
		||||
						</el-col>
 | 
			
		||||
						<el-col :span="11">
 | 
			
		||||
							<el-input-number v-model="item.maxValue" :disabled="isdetail" :min="0" controls-position="right" clearable placeholder="最大值" style="width: 100%" />
 | 
			
		||||
						</el-col>
 | 
			
		||||
					</el-row>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-col>
 | 
			
		||||
		</el-row>
 | 
			
		||||
 | 
			
		||||
	</el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import basicAdd from '../../core/mixins/basic-add';
 | 
			
		||||
import { createHotMaterial, updateHotMaterial, getHotMaterial, getCode } from "@/api/base/coreHotMaterial";
 | 
			
		||||
import { createHotMaterial, updateHotMaterial, getHotMaterial, getCode, createHotMaterialCheck, updateHotMaterialCheck, getHotCheckList } from "@/api/base/coreHotMaterial";
 | 
			
		||||
import { getDictDatas} from "@/utils/dict";
 | 
			
		||||
import SmallTitle from './SmallTitle';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	components: { SmallTitle },
 | 
			
		||||
	mixins: [basicAdd],
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
@@ -76,8 +118,10 @@ export default {
 | 
			
		||||
        dailyCost: undefined,
 | 
			
		||||
				remark: undefined
 | 
			
		||||
			},
 | 
			
		||||
			test: [],
 | 
			
		||||
			departmentlList: [],
 | 
			
		||||
			menuOptions: [],
 | 
			
		||||
			isdetail: false,
 | 
			
		||||
			dataRule: {
 | 
			
		||||
        code: [{ required: true, message: "原料编码不能为空", trigger: "blur" }],
 | 
			
		||||
        name: [{ required: true, message: "原料名称不能为空", trigger: "blur" }]
 | 
			
		||||
@@ -85,6 +129,100 @@ export default {
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {},
 | 
			
		||||
	methods: {}
 | 
			
		||||
	methods: {
 | 
			
		||||
		init(id, isdetail) {
 | 
			
		||||
			this.test = []
 | 
			
		||||
      this.dataForm.id = id || "";
 | 
			
		||||
			this.isdetail = isdetail || false;
 | 
			
		||||
      this.visible = true;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["dataForm"].resetFields();
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          this.urlOptions.infoURL(id).then(response => {
 | 
			
		||||
            this.dataForm = response.data;
 | 
			
		||||
          });
 | 
			
		||||
					getHotCheckList({
 | 
			
		||||
						materialId: this.dataForm.id
 | 
			
		||||
					}).then(res => {
 | 
			
		||||
						this.test = res.data
 | 
			
		||||
					})
 | 
			
		||||
        } else {
 | 
			
		||||
					this.test = [
 | 
			
		||||
						{
 | 
			
		||||
							name: null,
 | 
			
		||||
							minValue: undefined,
 | 
			
		||||
							maxValue: undefined
 | 
			
		||||
						}
 | 
			
		||||
					]
 | 
			
		||||
          if (this.urlOptions.isGetCode) {
 | 
			
		||||
            this.getCode()
 | 
			
		||||
          }
 | 
			
		||||
				}
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		// 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs["dataForm"].validate((valid) => {
 | 
			
		||||
        if (!valid) {
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
        // 修改的提交
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          this.urlOptions.updateURL(this.dataForm).then(response => {
 | 
			
		||||
						if (this.test.length > 1 || this.test[0].name) {
 | 
			
		||||
							this.test.forEach(check => {
 | 
			
		||||
								check.hotMaterialId = this.dataForm.id
 | 
			
		||||
								if (check.id) {
 | 
			
		||||
									updateHotMaterialCheck(check).then(res => {
 | 
			
		||||
										console.log(res)
 | 
			
		||||
									})
 | 
			
		||||
								} else {
 | 
			
		||||
									createHotMaterialCheck(check).then(res1 => {
 | 
			
		||||
										console.log(res1)
 | 
			
		||||
									})
 | 
			
		||||
								}
 | 
			
		||||
							})
 | 
			
		||||
						}
 | 
			
		||||
            this.$modal.msgSuccess("修改成功");
 | 
			
		||||
            this.visible = false; 
 | 
			
		||||
            this.$emit("refreshDataList");
 | 
			
		||||
          });
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        // 添加的提交
 | 
			
		||||
        this.urlOptions.createURL(this.dataForm).then(response => {
 | 
			
		||||
					if (this.test.length > 1 || this.test[0].name) {
 | 
			
		||||
						this.test.forEach(check => {
 | 
			
		||||
							check.hotMaterialId = response.data
 | 
			
		||||
							createHotMaterialCheck(check).then(res => {
 | 
			
		||||
								console.log(res)
 | 
			
		||||
							})
 | 
			
		||||
						})
 | 
			
		||||
					}
 | 
			
		||||
          this.$modal.msgSuccess("新增成功");
 | 
			
		||||
          this.visible = false;
 | 
			
		||||
          this.$emit("refreshDataList");
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		addNew() {
 | 
			
		||||
			this.test.push({
 | 
			
		||||
				name: null,
 | 
			
		||||
				minValue: undefined,
 | 
			
		||||
				maxValue: undefined
 | 
			
		||||
			})
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
.action_btn {
 | 
			
		||||
  float: right;
 | 
			
		||||
  margin: -40px 15px;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
.add {
 | 
			
		||||
	color: #0b58ff;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -83,13 +83,19 @@ export default {
 | 
			
		||||
			},
 | 
			
		||||
			tableProps,
 | 
			
		||||
			tableBtn: [
 | 
			
		||||
				this.$auth.hasPermi(`base:core-hot-material:update`)
 | 
			
		||||
				this.$auth.hasPermi(`base:core-hot-material-check:detail`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'detail',
 | 
			
		||||
							btnName: '详情',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
				this.$auth.hasPermi(`base:core-hot-material-check:update`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'edit',
 | 
			
		||||
							btnName: '编辑',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
          this.$auth.hasPermi(`base:core-hot-material:delete`)
 | 
			
		||||
          this.$auth.hasPermi(`base:core-hot-material-check:delete`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'delete',
 | 
			
		||||
							btnName: '删除',
 | 
			
		||||
@@ -120,7 +126,7 @@ export default {
 | 
			
		||||
					type: 'separate',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: this.$auth.hasPermi('base:core-hot-material:create') ? 'button' : '',
 | 
			
		||||
					type: this.$auth.hasPermi('base:core-hot-material-check:create') ? 'button' : '',
 | 
			
		||||
					btnName: '新增',
 | 
			
		||||
					name: 'add',
 | 
			
		||||
					color: 'success',
 | 
			
		||||
@@ -143,6 +149,14 @@ export default {
 | 
			
		||||
    //     this.dataListLoading = false;
 | 
			
		||||
    //   });
 | 
			
		||||
    // },
 | 
			
		||||
		otherMethods(val) {
 | 
			
		||||
			// 详情
 | 
			
		||||
			this.addOrUpdateVisible = true;
 | 
			
		||||
			this.addOrEditTitle = "详情";
 | 
			
		||||
			this.$nextTick(() => {
 | 
			
		||||
				this.$refs.addOrUpdate.init(val.data.id, true);
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-27 20:07:09
 | 
			
		||||
 * @LastEditTime: 2023-12-06 10:36:56
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -91,27 +91,30 @@
 | 
			
		||||
						</el-col>
 | 
			
		||||
						<el-col :span="8">
 | 
			
		||||
							<el-form-item label="单位平方数" prop="area">
 | 
			
		||||
								<el-input-number v-model="dataForm.area" :precision="2" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入单位平方数" />
 | 
			
		||||
								<el-input-number v-model="dataForm.area" :precision="6" :min="0" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入单位平方数" />
 | 
			
		||||
							</el-form-item>
 | 
			
		||||
						</el-col>
 | 
			
		||||
					</el-row>
 | 
			
		||||
					<el-row :gutter="20">
 | 
			
		||||
						<el-col :span="8">
 | 
			
		||||
							<el-form-item label="规格" prop="specifications">
 | 
			
		||||
								<el-input v-model="dataForm.specifications" :disabled="isdetail" clearable placeholder="请输入规格" />
 | 
			
		||||
								<el-input v-model="dataForm.specifications" :disabled="isdetail" @blur="setArea" @clear="clearArea" clearable placeholder="请输入规格" />
 | 
			
		||||
							</el-form-item>
 | 
			
		||||
						</el-col>
 | 
			
		||||
						<el-col :span="8">
 | 
			
		||||
							<el-form-item label="产线生产单位用时(S)" prop="processTime">
 | 
			
		||||
								<el-input v-model.number="dataForm.processTime" type="number" :disabled="isdetail" clearable placeholder="请输入产线生产单位用时" />
 | 
			
		||||
								<el-input v-model.number="dataForm.processTime" :precision="4" :min="0" type="number" :disabled="isdetail" clearable placeholder="请输入产线生产单位用时" />
 | 
			
		||||
							</el-form-item>
 | 
			
		||||
						</el-col>
 | 
			
		||||
						<el-col :span="8">
 | 
			
		||||
							<el-form-item label="备注" prop="remark">
 | 
			
		||||
								<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
 | 
			
		||||
							<el-form-item label="重量" prop="weight">
 | 
			
		||||
								<el-input-number v-model="dataForm.weight" :precision="6" :min="0" style="width: 100%" :disabled="isdetail" clearable placeholder="请输入重量" />
 | 
			
		||||
							</el-form-item>
 | 
			
		||||
						</el-col>
 | 
			
		||||
					</el-row>
 | 
			
		||||
					<el-form-item label="备注" prop="remark">
 | 
			
		||||
						<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
 | 
			
		||||
					</el-form-item>
 | 
			
		||||
				</el-form>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
@@ -240,7 +243,8 @@ export default {
 | 
			
		||||
				specifications: undefined,
 | 
			
		||||
				processTime: 0,
 | 
			
		||||
        remark: undefined,
 | 
			
		||||
				unit: undefined
 | 
			
		||||
				unit: undefined,
 | 
			
		||||
				weight: undefined
 | 
			
		||||
			},
 | 
			
		||||
			productAttrList: [],
 | 
			
		||||
			visible: false,
 | 
			
		||||
@@ -257,6 +261,24 @@ export default {
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {},
 | 
			
		||||
	methods: {
 | 
			
		||||
		clearArea() {
 | 
			
		||||
			this.$set(this.dataForm, 'area', 0)
 | 
			
		||||
			this.$set(this.dataForm, 'weight', 0)
 | 
			
		||||
		},
 | 
			
		||||
		setArea() {
 | 
			
		||||
			if (this.dataForm.specifications) {
 | 
			
		||||
				const height = Number(this.dataForm.specifications.slice(2,4))
 | 
			
		||||
				const length = Number(this.dataForm.specifications.slice(4,8))
 | 
			
		||||
				const width = Number(this.dataForm.specifications.slice(8))
 | 
			
		||||
				// this.dataForm.area = length * width
 | 
			
		||||
				// this.dataForm.weight = 2.5 * height * length * width
 | 
			
		||||
				this.$set(this.dataForm, 'area', length * width)
 | 
			
		||||
				this.$set(this.dataForm, 'weight', 2.5 * height * length * width)
 | 
			
		||||
			} else {
 | 
			
		||||
				this.dataForm.area = 0
 | 
			
		||||
				this.dataForm.weight = 0
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		initData() {
 | 
			
		||||
			this.productAttrList.splice(0);
 | 
			
		||||
			this.listQuery.total = 0;
 | 
			
		||||
@@ -317,6 +339,10 @@ export default {
 | 
			
		||||
					// 获取产品详情
 | 
			
		||||
					this.urlOptions.infoURL(id).then(response => {
 | 
			
		||||
            this.dataForm = response.data
 | 
			
		||||
						// this.dataForm.area = response.data.area || 0
 | 
			
		||||
						// this.dataForm.weight = response.data.weight || 0
 | 
			
		||||
						// this.dataForm.specifications = response.data.specifications || undefined
 | 
			
		||||
						console.log('11res112', this.dataForm.specifications, this.dataForm.weight, this.dataForm.area)
 | 
			
		||||
						if (this.dataForm.unit !== undefined) {
 | 
			
		||||
							this.dataForm.unit = String(this.dataForm.unit)
 | 
			
		||||
						}
 | 
			
		||||
@@ -339,7 +365,7 @@ export default {
 | 
			
		||||
		goback() {
 | 
			
		||||
			this.$emit('refreshDataList');
 | 
			
		||||
			this.visible = false;
 | 
			
		||||
			// this.initData();
 | 
			
		||||
			this.initData();
 | 
			
		||||
		},
 | 
			
		||||
		goEdit() {
 | 
			
		||||
			this.isdetail = false;
 | 
			
		||||
@@ -370,6 +396,7 @@ export default {
 | 
			
		||||
        this.urlOptions.createURL(this.dataForm).then(response => {
 | 
			
		||||
          this.$modal.msgSuccess("新增成功");
 | 
			
		||||
					this.idAttrShow = true
 | 
			
		||||
					this.dataForm.id = response.data
 | 
			
		||||
          // this.visible = false;
 | 
			
		||||
          this.$emit("refreshDataList");
 | 
			
		||||
        });
 | 
			
		||||
 
 | 
			
		||||
@@ -140,12 +140,13 @@ export default {
 | 
			
		||||
			allocationVisible: false,
 | 
			
		||||
			tableProps,
 | 
			
		||||
			tableBtn: [
 | 
			
		||||
				this.$auth.hasPermi(`base:core-work-order:material`)
 | 
			
		||||
					? {
 | 
			
		||||
							type: 'material',
 | 
			
		||||
							btnName: '原料信息',
 | 
			
		||||
					  }
 | 
			
		||||
					: undefined,
 | 
			
		||||
				// this.$auth.hasPermi(`base:core-work-order:material`)
 | 
			
		||||
				// 	? {
 | 
			
		||||
				// 			type: 'material',
 | 
			
		||||
				// 			btnName: '原料信息',
 | 
			
		||||
				// 			showTip: '预使用原料信息'
 | 
			
		||||
				// 	  }
 | 
			
		||||
				// 	: undefined,
 | 
			
		||||
					{
 | 
			
		||||
						type: 'active',
 | 
			
		||||
						btnName: '激活',
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-11-27 15:26:12
 | 
			
		||||
 * @LastEditTime: 2023-12-04 15:10:11
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -377,6 +377,7 @@ export default {
 | 
			
		||||
        this.urlOptions.createURL(this.dataForm).then(response => {
 | 
			
		||||
          this.$modal.msgSuccess("新增成功");
 | 
			
		||||
					this.idAttrShow = true
 | 
			
		||||
					this.dataForm.id = response.data
 | 
			
		||||
          this.$emit("refreshDataList");
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
 
 | 
			
		||||
@@ -125,7 +125,7 @@
 | 
			
		||||
<script>
 | 
			
		||||
import SmallTitle from '../../../base/alarm/Record/SmallTitle.vue';
 | 
			
		||||
import { createCheckLog, updateCheckLog, getcheckConfigByEqList, getEqCheckLog } from '@/api/equipment/base/inspection/record'
 | 
			
		||||
import { getEquipmentAll } from '@/api/base/equipment'
 | 
			
		||||
import { getEquipmentPage } from '@/api/base/equipment'
 | 
			
		||||
import Editor from "@/components/Editor";
 | 
			
		||||
import { getCheckDetPage } from "@/api/equipment/base/inspection/settings";
 | 
			
		||||
// import FileUpload from "@/components/FileUpload";
 | 
			
		||||
@@ -203,7 +203,7 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
	created() {
 | 
			
		||||
		this.getDict()
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
@@ -211,8 +211,12 @@ export default {
 | 
			
		||||
			this.fileName = val
 | 
			
		||||
		},
 | 
			
		||||
		async getDict() {
 | 
			
		||||
			const res = await getEquipmentAll()
 | 
			
		||||
			this.eqList = res.data
 | 
			
		||||
			const res = await getEquipmentPage({
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 100,
 | 
			
		||||
				special: false
 | 
			
		||||
			})
 | 
			
		||||
			this.eqList = res.data.list
 | 
			
		||||
			const configres = await getcheckConfigByEqList()
 | 
			
		||||
			this.configList = configres.data
 | 
			
		||||
		},
 | 
			
		||||
 
 | 
			
		||||
@@ -215,6 +215,7 @@ export default {
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				special: false,
 | 
			
		||||
				maintenanceStatus: null,
 | 
			
		||||
				createTime: null,
 | 
			
		||||
				equipmentId: null,
 | 
			
		||||
@@ -231,11 +232,15 @@ export default {
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		initSearchBar() {
 | 
			
		||||
			this.http('/base/core-equipment/listAll', 'get').then(({ data }) => {
 | 
			
		||||
			this.http('/base/core-equipment/page', 'get', {
 | 
			
		||||
				special: false,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 99,
 | 
			
		||||
			}).then(({ data }) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[0],
 | 
			
		||||
					'selectOptions',
 | 
			
		||||
					data.map((item) => ({
 | 
			
		||||
					(data?.list || []).map((item) => ({
 | 
			
		||||
						name: item.name,
 | 
			
		||||
						id: item.id,
 | 
			
		||||
					}))
 | 
			
		||||
 
 | 
			
		||||
@@ -186,6 +186,7 @@ export default {
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				special: false,
 | 
			
		||||
				equipmentName: null,
 | 
			
		||||
				createTime: null,
 | 
			
		||||
			},
 | 
			
		||||
@@ -217,11 +218,15 @@ export default {
 | 
			
		||||
				.catch(() => { });
 | 
			
		||||
		},
 | 
			
		||||
		initSearchBar() {
 | 
			
		||||
			this.http('/base/core-equipment/listAll', 'get').then(({ data }) => {
 | 
			
		||||
			this.http('/base/core-equipment/page', 'get', {
 | 
			
		||||
				special: false,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 99
 | 
			
		||||
			}).then(({ data }) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[1],
 | 
			
		||||
					'selectOptions',
 | 
			
		||||
					data.map((item) => ({
 | 
			
		||||
					(data?.list || []).map((item) => ({
 | 
			
		||||
						name: item.name,
 | 
			
		||||
						id: item.id,
 | 
			
		||||
					}))
 | 
			
		||||
 
 | 
			
		||||
@@ -186,7 +186,8 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						// url: '/base/core-equipment/listAll?special=false',
 | 
			
		||||
						url: '/base/core-equipment/page?special=false&pageNo=1&pageSize=99',
 | 
			
		||||
						rules: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
@@ -244,6 +245,7 @@ export default {
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				special: false,
 | 
			
		||||
				equipmentName: null,
 | 
			
		||||
				createTime: null,
 | 
			
		||||
			},
 | 
			
		||||
 
 | 
			
		||||
@@ -195,7 +195,8 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '保养设备',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						// url: '/base/core-equipment/listAll',
 | 
			
		||||
						url: '/base/core-equipment/page?special=false&pageNo=1&pageSize=99',
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
@@ -301,6 +302,7 @@ export default {
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				special: false,
 | 
			
		||||
				maintainPlanId: null,
 | 
			
		||||
				maintainPlanId: null,
 | 
			
		||||
				startTime: null,
 | 
			
		||||
@@ -338,11 +340,15 @@ export default {
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		initSearchBar() {
 | 
			
		||||
			this.http('/base/core-equipment/listAll', 'get').then(({ data }) => {
 | 
			
		||||
			this.http('/base/core-equipment/page', 'get', {
 | 
			
		||||
				special: false,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 99
 | 
			
		||||
			}).then(({ data }) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[0],
 | 
			
		||||
					'selectOptions',
 | 
			
		||||
					data.map((item) => ({
 | 
			
		||||
					(data?.list || []).map((item) => ({
 | 
			
		||||
						name: item.name,
 | 
			
		||||
						id: item.id,
 | 
			
		||||
					}))
 | 
			
		||||
 
 | 
			
		||||
@@ -193,7 +193,8 @@ export default {
 | 
			
		||||
						select: true,
 | 
			
		||||
						label: '设备名称',
 | 
			
		||||
						prop: 'equipmentId',
 | 
			
		||||
						url: '/base/core-equipment/listAll',
 | 
			
		||||
						// url: '/base/core-equipment/listAll',
 | 
			
		||||
						url: '/base/core-equipment/page?special=false&pageNo=1&pageSize=99',
 | 
			
		||||
						bind: {
 | 
			
		||||
							filterable: true,
 | 
			
		||||
							clearable: true,
 | 
			
		||||
@@ -251,6 +252,7 @@ export default {
 | 
			
		||||
			queryParams: {
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				special: false,
 | 
			
		||||
				maintenanceStatus: null,
 | 
			
		||||
				createTime: null,
 | 
			
		||||
				equipmentId: null,
 | 
			
		||||
@@ -267,11 +269,15 @@ export default {
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		initSearchBar() {
 | 
			
		||||
			this.http('/base/core-equipment/listAll', 'get').then(({ data }) => {
 | 
			
		||||
			this.http('/base/core-equipment/page', 'get', {
 | 
			
		||||
				special: false,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				pageSize: 99,
 | 
			
		||||
			}).then(({ data }) => {
 | 
			
		||||
				this.$set(
 | 
			
		||||
					this.searchBarFormConfig[0],
 | 
			
		||||
					'selectOptions',
 | 
			
		||||
					data.map((item) => ({
 | 
			
		||||
					(data?.list || []).map((item) => ({
 | 
			
		||||
						name: item.name,
 | 
			
		||||
						id: item.id,
 | 
			
		||||
					}))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2021-11-18 14:16:25
 | 
			
		||||
 * @LastEditors: zhp
 | 
			
		||||
 * @LastEditTime: 2023-12-08 13:59:10
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @LastEditTime: 2023-12-14 14:03:27
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										213
									
								
								src/views/report/glass/inputTable.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								src/views/report/glass/inputTable.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,213 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: Do not edit
 | 
			
		||||
 * @Date: 2023-12-13 14:10:04
 | 
			
		||||
 * @LastEditTime: 2023-12-14 10:18:20
 | 
			
		||||
 * @LastEditors: DY
 | 
			
		||||
 * @Description: 
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <el-row style="float: right; margin-bottom: 5px">
 | 
			
		||||
      <el-button size="small" @click="edit = true">编辑</el-button>
 | 
			
		||||
      <el-button v-if="edit" size="small" @click="updateData">保存</el-button>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-table
 | 
			
		||||
      :data="data"
 | 
			
		||||
      border
 | 
			
		||||
      show-summary
 | 
			
		||||
      style="width: 100%">
 | 
			
		||||
      <el-table-column
 | 
			
		||||
        v-for="(item, index) in cols"
 | 
			
		||||
        :key="index" :prop="item.prop"
 | 
			
		||||
        :label="item.label"
 | 
			
		||||
        :align="item.align ? item.align : 'left'">
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          v-for="(it, index1) in item.children"
 | 
			
		||||
          :key="index1"
 | 
			
		||||
          :prop="it.prop"
 | 
			
		||||
          :label="it.label"
 | 
			
		||||
          :align="item.align ? item.align : 'left'">
 | 
			
		||||
          <el-table-column
 | 
			
		||||
          v-for="(y, index2) in it.children"
 | 
			
		||||
          :key="index2"
 | 
			
		||||
          :prop="y.prop"
 | 
			
		||||
          :label="y.label">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <span v-if="!edit">{{ scope.row[y.prop] }}</span>
 | 
			
		||||
            <el-input v-else v-model.number="scope.row[y.prop]"></el-input>
 | 
			
		||||
          </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
    </el-table>
 | 
			
		||||
    <el-input type="textarea" v-model="sum.remark" placeholder="备注" :disabled="!edit" :autosize="{ minRows: 2, maxRows: 6}"></el-input>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { updateGlass, updateGlassRemark } from '@/api/report/glass';
 | 
			
		||||
 | 
			
		||||
const cols = [
 | 
			
		||||
  {
 | 
			
		||||
		prop: 'xc',
 | 
			
		||||
		label: '许昌安彩周原片生产汇总',
 | 
			
		||||
		align: 'center',
 | 
			
		||||
		children: [
 | 
			
		||||
			{
 | 
			
		||||
				prop: 'lineName',
 | 
			
		||||
				label: '生产线',
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				prop: 'm',
 | 
			
		||||
				label: '拉引量㎡',
 | 
			
		||||
        align: 'center',
 | 
			
		||||
        children: [
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'dailyOutputNow',
 | 
			
		||||
            label: '本周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'dailyOutputHis',
 | 
			
		||||
            label: '上周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'dailyOutputTrend',
 | 
			
		||||
            label: '增减',
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
			},
 | 
			
		||||
      {
 | 
			
		||||
				prop: 'y',
 | 
			
		||||
				label: '原片合计(片/周)',
 | 
			
		||||
        align: 'center',
 | 
			
		||||
        children: [
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassStatisticsNow',
 | 
			
		||||
            label: '本周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassStatisticsHis',
 | 
			
		||||
            label: '上周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassStatisticsTrend',
 | 
			
		||||
            label: '增减',
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
			},
 | 
			
		||||
      {
 | 
			
		||||
				prop: 's',
 | 
			
		||||
				label: '实际原片产量㎡',
 | 
			
		||||
        align: 'center',
 | 
			
		||||
        children: [
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'actualProductNow',
 | 
			
		||||
            label: '本周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'actualProductHis',
 | 
			
		||||
            label: '上周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'actualProductTrend',
 | 
			
		||||
            label: '增减',
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
			},
 | 
			
		||||
      {
 | 
			
		||||
				prop: 'yield',
 | 
			
		||||
				label: '原片良品率',
 | 
			
		||||
        children: [
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassPassNow',
 | 
			
		||||
            label: '本周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassPassHis	',
 | 
			
		||||
            label: '上周',
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            prop: 'originalGlassPassTrend',
 | 
			
		||||
            label: '增减',
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
			}
 | 
			
		||||
		]
 | 
			
		||||
	}
 | 
			
		||||
]
 | 
			
		||||
  export default {
 | 
			
		||||
    props: {
 | 
			
		||||
      data: {
 | 
			
		||||
        type: Array,
 | 
			
		||||
        default: () => [],
 | 
			
		||||
      },
 | 
			
		||||
      time: {
 | 
			
		||||
        type: Array,
 | 
			
		||||
        default: () => [],
 | 
			
		||||
      },
 | 
			
		||||
      sum: {
 | 
			
		||||
        type: Object,
 | 
			
		||||
        default: () => {},
 | 
			
		||||
      },
 | 
			
		||||
      type: {
 | 
			
		||||
        type: Number,
 | 
			
		||||
        default: 3,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        cols,
 | 
			
		||||
        edit: false,
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
    watch: {
 | 
			
		||||
      time: {
 | 
			
		||||
        immediate: true,
 | 
			
		||||
        handler(newv, oldv) {
 | 
			
		||||
          if (newv[0] !== '') {
 | 
			
		||||
            this.cols[0].label = '许昌安彩周原片生产汇总' + '(' + newv[0] + '-' + newv[1] + ')'
 | 
			
		||||
          } else {
 | 
			
		||||
            this.cols[0].label = '许昌安彩周原片生产汇总'
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      type: {
 | 
			
		||||
        immediate: true,
 | 
			
		||||
        handler(newv, oldv) {
 | 
			
		||||
          let text1 = '', text2 = '', text3 = ''
 | 
			
		||||
          if (newv === 3) {
 | 
			
		||||
            text1 = '本周'
 | 
			
		||||
            text2 = '上周'
 | 
			
		||||
            text3 = '原片合计(片/周)'
 | 
			
		||||
          } else if (newv === 4) {
 | 
			
		||||
            text1 = '本月'
 | 
			
		||||
            text2 = '上月'
 | 
			
		||||
            text3 = '原片合计(片/月)'
 | 
			
		||||
          } else {
 | 
			
		||||
            text1 = '本年'
 | 
			
		||||
            text2 = '上年'
 | 
			
		||||
            text3 = '原片合计(片/年)'
 | 
			
		||||
          }
 | 
			
		||||
          this.cols[0].children[1].children[0].label = text1
 | 
			
		||||
          this.cols[0].children[1].children[1].label = text2
 | 
			
		||||
          this.cols[0].children[2].children[0].label = text1
 | 
			
		||||
          this.cols[0].children[2].children[1].label = text2
 | 
			
		||||
          this.cols[0].children[3].children[0].label = text1
 | 
			
		||||
          this.cols[0].children[3].children[1].label = text2
 | 
			
		||||
          this.cols[0].children[2].label = text3
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      updateData() {
 | 
			
		||||
        updateGlass(this.data).then(response => {
 | 
			
		||||
          updateGlassRemark(this.sum).then(res => {
 | 
			
		||||
            this.$modal.msgSuccess("修改成功");
 | 
			
		||||
            this.edit = false; 
 | 
			
		||||
            this.$emit("refreshDataList");
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										177
									
								
								src/views/report/glass/month.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								src/views/report/glass/month.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,177 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<div>
 | 
			
		||||
			<el-form
 | 
			
		||||
				:model="listQuery"
 | 
			
		||||
				:inline="true"
 | 
			
		||||
				ref="dataForm"
 | 
			
		||||
				class="blueTip">
 | 
			
		||||
				<el-form-item label="月" prop="reportTime">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="reportTime"
 | 
			
		||||
						type="month"
 | 
			
		||||
						size="small"
 | 
			
		||||
						@change="changeTime"
 | 
			
		||||
						placeholder="选择月">
 | 
			
		||||
					</el-date-picker>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<el-form-item>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-month:query')" type="primary" size="small" @click="getDataList">查询</el-button>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-month:export')" type="primary" size="small" plain @click="handleExport">导出</el-button>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-form>
 | 
			
		||||
		</div>
 | 
			
		||||
		<inputTable :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all" :type="listQuery.reportType" @refreshDataList="getDataList" />
 | 
			
		||||
		<!-- <pagination
 | 
			
		||||
			:limit.sync="listQuery.pageSize"
 | 
			
		||||
			:page.sync="listQuery.pageNo"
 | 
			
		||||
			:total="listQuery.total"
 | 
			
		||||
			@pagination="getDataList" /> -->
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { parseTime } from '../../core/mixins/code-filter';
 | 
			
		||||
import { getGlassPage, exportGlasscExcel } from '@/api/report/glass';
 | 
			
		||||
import inputTable from './inputTable.vue';
 | 
			
		||||
import { getCorePLList } from '@/api/base/coreProductionLine';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	components: { inputTable },
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			urlOptions: {
 | 
			
		||||
				getDataListURL: getGlassPage,
 | 
			
		||||
				exportURL: exportGlasscExcel
 | 
			
		||||
			},
 | 
			
		||||
			listQuery: {
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				total: 0,
 | 
			
		||||
				reportType: 4,
 | 
			
		||||
				reportTime: []
 | 
			
		||||
			},
 | 
			
		||||
			reportTime: '',
 | 
			
		||||
			startTimeStamp: '',
 | 
			
		||||
			endTimeStamp: '',
 | 
			
		||||
			tableData: [],
 | 
			
		||||
			proLineList: [],
 | 
			
		||||
			all: {}
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {
 | 
			
		||||
		this.getDict()
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		async getDict() {
 | 
			
		||||
			// 产线列表
 | 
			
		||||
			const res = await getCorePLList();
 | 
			
		||||
			this.proLineList = res.data;
 | 
			
		||||
		},
 | 
			
		||||
		// 获取数据列表
 | 
			
		||||
    async getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      await this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
        this.tableData = response.data.filter(item => {
 | 
			
		||||
					this.proLineList.forEach(it => {
 | 
			
		||||
						if (item.lineId === it.id) {
 | 
			
		||||
							item.lineName = it.name
 | 
			
		||||
						}
 | 
			
		||||
					})
 | 
			
		||||
					if (item.det === false) {
 | 
			
		||||
						this.all = {
 | 
			
		||||
							id: item.id,
 | 
			
		||||
							remark: item.remark
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					return item.det === true
 | 
			
		||||
				});
 | 
			
		||||
        this.listQuery.total = response.data.length;
 | 
			
		||||
        this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		changeTime(val) {
 | 
			
		||||
			if(val) {
 | 
			
		||||
					const timeStamp = val.getMonth(); //标准时间转为时间戳,毫秒级别
 | 
			
		||||
					const fullyear = val.getFullYear()
 | 
			
		||||
					let days = 0
 | 
			
		||||
					switch (timeStamp) {
 | 
			
		||||
						case 0, 2, 4, 6, 7, 9, 11:
 | 
			
		||||
							days = 31
 | 
			
		||||
							break
 | 
			
		||||
						case 3, 4, 8, 10:
 | 
			
		||||
							days = 30
 | 
			
		||||
							break
 | 
			
		||||
						case 1:
 | 
			
		||||
							if ((fullyear % 400 === 0) || (fullyear() % 4 === 0 && fullyear() % 100 !== 0)) {
 | 
			
		||||
								days = 29
 | 
			
		||||
							} else {
 | 
			
		||||
								days = 28
 | 
			
		||||
							}
 | 
			
		||||
					}
 | 
			
		||||
					this.startTimeStamp = this.timeFun(new Date(fullyear, timeStamp, 1).getTime()); //开始时间
 | 
			
		||||
					this.endTimeStamp = this.timeFun(new Date(fullyear, timeStamp, days, 23, 59, 59).getTime()); //结束时间
 | 
			
		||||
					console.log(this.startTimeStamp, this.endTimeStamp)
 | 
			
		||||
					this.listQuery.reportTime[0] = parseTime(new Date(fullyear, timeStamp, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
 | 
			
		||||
					this.listQuery.reportTime[1] = parseTime(new Date(fullyear, timeStamp, days, 23, 59, 59).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
 | 
			
		||||
			} else {
 | 
			
		||||
					this.listQuery.reportTime = []
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		//时间戳转为yy-mm-dd hh:mm:ss
 | 
			
		||||
		timeFun(unixtimestamp) {
 | 
			
		||||
				var unixtimestamp = new Date(unixtimestamp);
 | 
			
		||||
				var year = 1900 + unixtimestamp.getYear();
 | 
			
		||||
				var month = "0" + (unixtimestamp.getMonth() + 1);
 | 
			
		||||
				var date = "0" + unixtimestamp.getDate();
 | 
			
		||||
				return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			this.listQuery.reportTime = val.reportTime ? val.reportTime : undefined;
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
					this.listQuery.pageNo = 1;
 | 
			
		||||
					this.listQuery.pageSize = 10;
 | 
			
		||||
					this.getDataList();
 | 
			
		||||
					break;
 | 
			
		||||
				case 'export':
 | 
			
		||||
					this.handleExport();
 | 
			
		||||
					break;
 | 
			
		||||
				default:
 | 
			
		||||
					console.log(val);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		/** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
      // 处理查询参数
 | 
			
		||||
      let params = { ...this.listQuery };
 | 
			
		||||
      params.pageNo = undefined;
 | 
			
		||||
      params.pageSize = undefined;
 | 
			
		||||
      this.$modal.confirm('是否确认导出所有数据项?').then(() => {
 | 
			
		||||
        this.exportLoading = true;
 | 
			
		||||
        return this.urlOptions.exportURL(params);
 | 
			
		||||
      }).then(response => {
 | 
			
		||||
        this.$download.excel(response, '原片生产周报.xls');
 | 
			
		||||
        this.exportLoading = false;
 | 
			
		||||
      }).catch(() => { });
 | 
			
		||||
    }
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
/* .blueTip { */
 | 
			
		||||
	/* padding-bottom: 10px; */
 | 
			
		||||
/* } */
 | 
			
		||||
.blueTip::before{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  content: '';
 | 
			
		||||
  width: 4px;
 | 
			
		||||
  height: 18px;
 | 
			
		||||
  background: #0B58FF;
 | 
			
		||||
  border-radius: 1px;
 | 
			
		||||
  margin-right: 8PX;
 | 
			
		||||
  margin-top: 8px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										198
									
								
								src/views/report/glass/weekly.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										198
									
								
								src/views/report/glass/weekly.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,198 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<!-- <search-bar
 | 
			
		||||
			:formConfigs="formConfig"
 | 
			
		||||
			ref="searchBarForm"
 | 
			
		||||
			@headBtnClick="buttonClick" /> -->
 | 
			
		||||
		<div>
 | 
			
		||||
			<el-form
 | 
			
		||||
				:model="listQuery"
 | 
			
		||||
				:inline="true"
 | 
			
		||||
				ref="dataForm"
 | 
			
		||||
				class="blueTip">
 | 
			
		||||
				<el-form-item label="周" prop="reportTime">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="reportTime"
 | 
			
		||||
						type="week"
 | 
			
		||||
						size="small"
 | 
			
		||||
						@change="changeTime"
 | 
			
		||||
						:picker-options="{firstDayOfWeek: 1}"
 | 
			
		||||
						:format="'yyyy 第 WW 周' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
 | 
			
		||||
						style="width: 350px"
 | 
			
		||||
						placeholder="选择周">
 | 
			
		||||
					</el-date-picker>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<el-form-item>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-weekly:query')" type="primary" size="small" @click="getDataList">查询</el-button>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-weekly:export')" type="primary" size="small" plain @click="handleExport">导出</el-button>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-form>
 | 
			
		||||
		</div>
 | 
			
		||||
		<inputTable :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all" :type="listQuery.reportType" @refreshDataList="getDataList" />
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { parseTime } from '../../core/mixins/code-filter';
 | 
			
		||||
import { getGlassPage, exportGlasscExcel } from '@/api/report/glass';
 | 
			
		||||
import inputTable from './inputTable.vue';
 | 
			
		||||
import { getCorePLList } from '@/api/base/coreProductionLine';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	components: { inputTable },
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			urlOptions: {
 | 
			
		||||
				getDataListURL: getGlassPage,
 | 
			
		||||
				exportURL: exportGlasscExcel
 | 
			
		||||
			},
 | 
			
		||||
			listQuery: {
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				total: 0,
 | 
			
		||||
				reportType: 3,
 | 
			
		||||
				reportTime: []
 | 
			
		||||
			},
 | 
			
		||||
			reportTime: '',
 | 
			
		||||
			startTimeStamp: '',
 | 
			
		||||
			endTimeStamp: '',
 | 
			
		||||
			tableData: [],
 | 
			
		||||
			proLineList: [],
 | 
			
		||||
			all: {},
 | 
			
		||||
			formConfig: [
 | 
			
		||||
				{
 | 
			
		||||
          type: 'datePicker',
 | 
			
		||||
          label: '周',
 | 
			
		||||
          dateType: 'week',
 | 
			
		||||
          format: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
          valueFormat: 'yyyy-MM-dd HH:mm:ss',
 | 
			
		||||
          rangeSeparator: '-',
 | 
			
		||||
          startPlaceholder: '开始时间',
 | 
			
		||||
          endPlaceholder: '结束时间',
 | 
			
		||||
          width: 350,
 | 
			
		||||
          param: 'reportTime',
 | 
			
		||||
        },
 | 
			
		||||
				{
 | 
			
		||||
					type: 'button',
 | 
			
		||||
					btnName: '查询',
 | 
			
		||||
					name: 'search',
 | 
			
		||||
					color: 'primary',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: 'separate',
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					type: this.$auth.hasPermi('report:glass-weekly:export') ? 'button' : '',
 | 
			
		||||
					btnName: '导出',
 | 
			
		||||
					name: 'export',
 | 
			
		||||
					color: 'primary',
 | 
			
		||||
					plain: true
 | 
			
		||||
				},
 | 
			
		||||
			],
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		// const day = new Date().getDay()
 | 
			
		||||
		// console.log('周四', day)
 | 
			
		||||
		// this.changeTime(new Date(new Date().getTime() - day * 24 * 60 * 60 * 1000))
 | 
			
		||||
		this.getDict()
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		async getDict() {
 | 
			
		||||
			// 产线列表
 | 
			
		||||
			await getCorePLList().then(res => {
 | 
			
		||||
				this.proLineList = res.data;
 | 
			
		||||
				// this.getDataList()
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		// 获取数据列表
 | 
			
		||||
    async getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      await this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
        this.tableData = response.data.filter(item => {
 | 
			
		||||
					this.proLineList.forEach(it => {
 | 
			
		||||
						if (item.lineId === it.id) {
 | 
			
		||||
							item.lineName = it.name
 | 
			
		||||
						}
 | 
			
		||||
					})
 | 
			
		||||
					if (item.det === false) {
 | 
			
		||||
						this.all = {
 | 
			
		||||
							id: item.id,
 | 
			
		||||
							remark: item.remark
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					return item.det === true
 | 
			
		||||
				});
 | 
			
		||||
        this.listQuery.total = response.data.length;
 | 
			
		||||
        this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		changeTime(val) {
 | 
			
		||||
			if(val) {
 | 
			
		||||
					let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别
 | 
			
		||||
					this.startTimeStamp = this.timeFun(timeStamp - 24 * 60 * 60 * 1000); //开始时间
 | 
			
		||||
					this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间
 | 
			
		||||
					console.log(this.startTimeStamp, this.endTimeStamp)
 | 
			
		||||
					this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 00:00:00').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
 | 
			
		||||
					this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 23:59:59').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
 | 
			
		||||
			} else {
 | 
			
		||||
					this.listQuery.reportTime = []
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		//时间戳转为yy-mm-dd hh:mm:ss
 | 
			
		||||
		timeFun(unixtimestamp) {
 | 
			
		||||
				var unixtimestamp = new Date(unixtimestamp);
 | 
			
		||||
				var year = 1900 + unixtimestamp.getYear();
 | 
			
		||||
				var month = "0" + (unixtimestamp.getMonth() + 1);
 | 
			
		||||
				var date = "0" + unixtimestamp.getDate();
 | 
			
		||||
				return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			this.listQuery.reportTime = val.reportTime ? val.reportTime : undefined;
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
					this.listQuery.pageNo = 1;
 | 
			
		||||
					this.listQuery.pageSize = 10;
 | 
			
		||||
					this.getDataList();
 | 
			
		||||
					break;
 | 
			
		||||
				case 'export':
 | 
			
		||||
					this.handleExport();
 | 
			
		||||
					break;
 | 
			
		||||
				default:
 | 
			
		||||
					console.log(val);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		/** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
      // 处理查询参数
 | 
			
		||||
      let params = { ...this.listQuery };
 | 
			
		||||
      params.pageNo = undefined;
 | 
			
		||||
      params.pageSize = undefined;
 | 
			
		||||
      this.$modal.confirm('是否确认导出所有数据项?').then(() => {
 | 
			
		||||
        this.exportLoading = true;
 | 
			
		||||
        return this.urlOptions.exportURL(params);
 | 
			
		||||
      }).then(response => {
 | 
			
		||||
        this.$download.excel(response, '原片生产周报.xls');
 | 
			
		||||
        this.exportLoading = false;
 | 
			
		||||
      }).catch(() => { });
 | 
			
		||||
    }
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
/* .blueTip { */
 | 
			
		||||
	/* padding-bottom: 10px; */
 | 
			
		||||
/* } */
 | 
			
		||||
.blueTip::before{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  content: '';
 | 
			
		||||
  width: 4px;
 | 
			
		||||
  height: 18px;
 | 
			
		||||
  background: #0B58FF;
 | 
			
		||||
  border-radius: 1px;
 | 
			
		||||
  margin-right: 8PX;
 | 
			
		||||
  margin-top: 8px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										158
									
								
								src/views/report/glass/year.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								src/views/report/glass/year.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,158 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="app-container">
 | 
			
		||||
		<div>
 | 
			
		||||
			<el-form
 | 
			
		||||
				:model="listQuery"
 | 
			
		||||
				:inline="true"
 | 
			
		||||
				ref="dataForm"
 | 
			
		||||
				class="blueTip">
 | 
			
		||||
				<el-form-item label="年" prop="reportTime">
 | 
			
		||||
					<el-date-picker
 | 
			
		||||
						v-model="reportTime"
 | 
			
		||||
						type="year"
 | 
			
		||||
						size="small"
 | 
			
		||||
						@change="changeTime"
 | 
			
		||||
						:picker-options="{firstDayOfWeek: 1}"
 | 
			
		||||
						:format="'yyyy 年' + '\u3000' + startTimeStamp + '-' + endTimeStamp"
 | 
			
		||||
						style="width: 350px"
 | 
			
		||||
						placeholder="选择年">
 | 
			
		||||
					</el-date-picker>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
				<el-form-item>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-year:query')" type="primary" size="small" @click="getDataList">查询</el-button>
 | 
			
		||||
					<el-button v-if="this.$auth.hasPermi('report:glass-year:export')" type="primary" size="small" plain @click="handleExport">导出</el-button>
 | 
			
		||||
				</el-form-item>
 | 
			
		||||
			</el-form>
 | 
			
		||||
		</div>
 | 
			
		||||
		<inputTable :data="tableData" :time="[startTimeStamp, endTimeStamp]" :sum="all" :type="listQuery.reportType" @refreshDataList="getDataList" />
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { parseTime } from '../../core/mixins/code-filter';
 | 
			
		||||
import { getGlassPage, exportGlasscExcel } from '@/api/report/glass';
 | 
			
		||||
import inputTable from './inputTable.vue';
 | 
			
		||||
import { getCorePLList } from '@/api/base/coreProductionLine';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	components: { inputTable },
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			urlOptions: {
 | 
			
		||||
				getDataListURL: getGlassPage,
 | 
			
		||||
				exportURL: exportGlasscExcel
 | 
			
		||||
			},
 | 
			
		||||
			listQuery: {
 | 
			
		||||
				pageSize: 10,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				total: 0,
 | 
			
		||||
				reportType: 5,
 | 
			
		||||
				reportTime: []
 | 
			
		||||
			},
 | 
			
		||||
			reportTime: '',
 | 
			
		||||
			startTimeStamp: '',
 | 
			
		||||
			endTimeStamp: '',
 | 
			
		||||
			tableData: [],
 | 
			
		||||
			proLineList: [],
 | 
			
		||||
			all: {},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	created() {
 | 
			
		||||
		this.getDict()
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		async getDict() {
 | 
			
		||||
			// 产线列表
 | 
			
		||||
			const res = await getCorePLList();
 | 
			
		||||
			this.proLineList = res.data;
 | 
			
		||||
		},
 | 
			
		||||
		// 获取数据列表
 | 
			
		||||
    async getDataList() {
 | 
			
		||||
      this.dataListLoading = true;
 | 
			
		||||
      await this.urlOptions.getDataListURL(this.listQuery).then(response => {
 | 
			
		||||
        this.tableData = response.data.filter(item => {
 | 
			
		||||
					this.proLineList.forEach(it => {
 | 
			
		||||
						if (item.lineId === it.id) {
 | 
			
		||||
							item.lineName = it.name
 | 
			
		||||
						}
 | 
			
		||||
					})
 | 
			
		||||
					if (item.det === false) {
 | 
			
		||||
						this.all = {
 | 
			
		||||
							id: item.id,
 | 
			
		||||
							remark: item.remark
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					return item.det === true
 | 
			
		||||
				});
 | 
			
		||||
        this.listQuery.total = response.data.length;
 | 
			
		||||
        this.dataListLoading = false;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
		changeTime(val) {
 | 
			
		||||
			if(val) {
 | 
			
		||||
					// let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别
 | 
			
		||||
					this.startTimeStamp = this.timeFun(new Date(val.getFullYear(), 0, 1).getTime()); //开始时间
 | 
			
		||||
					this.endTimeStamp = this.timeFun(new Date(val.getFullYear(), 11, 31, 23, 59, 59).getTime()); //结束时间
 | 
			
		||||
					this.listQuery.reportTime[0] = parseTime(new Date(val.getFullYear(), 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
 | 
			
		||||
					this.listQuery.reportTime[1] = parseTime(new Date(val.getFullYear(), 11, 31, 23, 59, 59).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
 | 
			
		||||
			} else {
 | 
			
		||||
					this.listQuery.reportTime = []
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		//时间戳转为yy-mm-dd hh:mm:ss
 | 
			
		||||
		timeFun(unixtimestamp) {
 | 
			
		||||
				var unixtimestamp = new Date(unixtimestamp);
 | 
			
		||||
				var year = 1900 + unixtimestamp.getYear();
 | 
			
		||||
				var month = "0" + (unixtimestamp.getMonth() + 1);
 | 
			
		||||
				var date = "0" + unixtimestamp.getDate();
 | 
			
		||||
				return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length)
 | 
			
		||||
		},
 | 
			
		||||
		buttonClick(val) {
 | 
			
		||||
			this.listQuery.reportTime = val.reportTime ? val.reportTime : undefined;
 | 
			
		||||
			switch (val.btnName) {
 | 
			
		||||
				case 'search':
 | 
			
		||||
					this.listQuery.pageNo = 1;
 | 
			
		||||
					this.listQuery.pageSize = 10;
 | 
			
		||||
					this.getDataList();
 | 
			
		||||
					break;
 | 
			
		||||
				case 'export':
 | 
			
		||||
					this.handleExport();
 | 
			
		||||
					break;
 | 
			
		||||
				default:
 | 
			
		||||
					console.log(val);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		/** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
      // 处理查询参数
 | 
			
		||||
      let params = { ...this.listQuery };
 | 
			
		||||
      params.pageNo = undefined;
 | 
			
		||||
      params.pageSize = undefined;
 | 
			
		||||
      this.$modal.confirm('是否确认导出所有数据项?').then(() => {
 | 
			
		||||
        this.exportLoading = true;
 | 
			
		||||
        return this.urlOptions.exportURL(params);
 | 
			
		||||
      }).then(response => {
 | 
			
		||||
        this.$download.excel(response, '原片生产周报.xls');
 | 
			
		||||
        this.exportLoading = false;
 | 
			
		||||
      }).catch(() => { });
 | 
			
		||||
    }
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
/* .blueTip { */
 | 
			
		||||
	/* padding-bottom: 10px; */
 | 
			
		||||
/* } */
 | 
			
		||||
.blueTip::before{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  content: '';
 | 
			
		||||
  width: 4px;
 | 
			
		||||
  height: 18px;
 | 
			
		||||
  background: #0B58FF;
 | 
			
		||||
  border-radius: 1px;
 | 
			
		||||
  margin-right: 8PX;
 | 
			
		||||
  margin-top: 8px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user