Commit b9fefa69 authored by luo ying's avatar luo ying

项目模板页面及对应链接

parent 7e97534c
...@@ -946,7 +946,7 @@ export default { ...@@ -946,7 +946,7 @@ export default {
taskCode: '甲方任务号', taskCode: '甲方任务号',
putintDocmentCode: '甲方投产输入文件(编号)', putintDocmentCode: '甲方投产输入文件(编号)',
technologyDocmentCode: '甲方技术输入文件(编号)', technologyDocmentCode: '甲方技术输入文件(编号)',
productionType:'生产类型' productionType: '生产类型'
}, },
mes_part_task_plan_simulate: { mes_part_task_plan_simulate: {
id: '', id: '',
...@@ -1137,8 +1137,8 @@ export default { ...@@ -1137,8 +1137,8 @@ export default {
multipleEquip: "是否多台安排设备", // 否 是 multipleEquip: "是否多台安排设备", // 否 是
multipleEquipIds: "设备id", //用英文逗号分隔 multipleEquipIds: "设备id", //用英文逗号分隔
discrete: '离散值', discrete: '离散值',
routingHeaderCode:'工艺编号', routingHeaderCode: '工艺编号',
routingHeaderName:'工艺名称', routingHeaderName: '工艺名称',
}, },
routing_header: { routing_header: {
id: '', id: '',
...@@ -1489,9 +1489,9 @@ export default { ...@@ -1489,9 +1489,9 @@ export default {
endTime: '结束时间', endTime: '结束时间',
planEndTime: '计划结束时间', planEndTime: '计划结束时间',
action: '操作', action: '操作',
subWorkHourStatus:'工时状态', subWorkHourStatus: '工时状态',
routingHeaderCode:'工艺编号', routingHeaderCode: '工艺编号',
routingHeaderName:'工艺名称' routingHeaderName: '工艺名称'
}, },
product_level: { product_level: {
name: '名称', name: '名称',
...@@ -1922,10 +1922,9 @@ export default { ...@@ -1922,10 +1922,9 @@ export default {
whour: '可用工日', whour: '可用工日',
whourpd: '可用工时/天', whourpd: '可用工时/天',
joindate: '加入日期' joindate: '加入日期'
} },
, //文档分类
//文档分类 document_category: {
document_category: {
creationTime: '创建时间', creationTime: '创建时间',
creatorUserId: '创建人', creatorUserId: '创建人',
lastModificationTime: '更新时间', lastModificationTime: '更新时间',
...@@ -2017,8 +2016,8 @@ document_category: { ...@@ -2017,8 +2016,8 @@ document_category: {
deletionTime: '删除时间', deletionTime: '删除时间',
deleterUserId: '删除人', deleterUserId: '删除人',
projectId: '项目id', projectId: '项目id',
direction:"方向", direction: "方向",
deliverable:"交付物", deliverable: "交付物",
upId: '父级', upId: '父级',
title: '标题', title: '标题',
status: '状态', status: '状态',
...@@ -2159,6 +2158,15 @@ document_category: { ...@@ -2159,6 +2158,15 @@ document_category: {
template: '模板', template: '模板',
attachment: '附件', attachment: '附件',
type: '模版类型', type: '模版类型',
direction: '方向',
projectId: '项目id',
upId: '父级',
status: '状态',
startDate: '开始日期',
endDate: '结束日期',
executor: '执行人',
deliverable: '交付物'
}, },
workHour: { workHour: {
userTitle: '员工姓名', userTitle: '员工姓名',
......
<template> <template>
<div> <div>
<EditGrid :columns="columns" ref="grid" :items="list" <EditGrid :columns="columns" ref="grid" :items="list"> </EditGrid>
> <Modal v-model="modal" :title="title" width="1200" footer-hide fullscreen>
</EditGrid> <component
:is="detail"
:eid="curId"
:v="row"
/>
</Modal>
</div> </div>
</template> </template>
<script> <script>
...@@ -16,8 +22,12 @@ export default { ...@@ -16,8 +22,12 @@ export default {
}, },
data() { data() {
return { return {
title:'',
modal: false,
curId: 0, curId: 0,
list:[], row: null,
list: [],
detail: null,
columns: [ columns: [
{ {
key: "id", key: "id",
...@@ -32,7 +42,24 @@ export default { ...@@ -32,7 +42,24 @@ export default {
align: "left", align: "left",
easy: true, easy: true,
high: true, high: true,
render: (h, params) => {
return h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.view(params.row) },
},
params.row.title
);
},
}, },
// {
// key: "title",
// title: this.l("title"),
// align: "left",
// easy: true,
// high: true,
// },
{ {
key: "note", key: "note",
title: this.l("note"), title: this.l("note"),
...@@ -69,19 +96,19 @@ export default { ...@@ -69,19 +96,19 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "remove",msg:"确定要导入模版吗?" }, attrs: { oprate: "remove", msg: "确定要导入模版吗?" },
on: { click: () => this.useTemplate(params.row.id) }, on: { click: () => this.useTemplate(params.row.id) },
}, },
"导入" "导入"
), ),
// h( // h(
// "op", // "op",
// { // {
// attrs: { oprate: "delete" }, // attrs: { oprate: "delete" },
// on: { click: () => this.remove(params.row.id) }, // on: { click: () => this.remove(params.row.id) },
// }, // },
// "删除" // "删除"
// ), // ),
]); ]);
}, },
}, },
...@@ -91,7 +118,7 @@ export default { ...@@ -91,7 +118,7 @@ export default {
mounted() { mounted() {
this.load(); this.load();
}, },
props: { props: {
v: Object, v: Object,
eid: String, eid: String,
}, },
...@@ -105,24 +132,30 @@ export default { ...@@ -105,24 +132,30 @@ export default {
this.curId = ""; this.curId = "";
}, },
load() { load() {
Api.templates({ Api.templates({}).then((r) => {
this.list = r.result;
}).then(r=>{ });
this.list=r.result;
})
}, },
useTemplate(id) { useTemplate(id) {
Api.useTemplate({ Api.useTemplate({
id:id, id: id,
projectId:this.eid projectId: this.eid,
}).then(r=>{ }).then((r) => {
if(r.success){ if (r.success) {
this.$Message.success("导入成功"); this.$Message.success("导入成功");
this.$emit("on-load") this.$emit("on-load");
} }
}) });
},
view(row) {
console.log("111");
console.log(row);
this.title="查看";
this.modal = true;
this.row = row;
this.curId = row.id;
this.detail = () => import("../resources/templates/detail.vue");
}, },
l(key) { l(key) {
let vkey = "project_template" + "." + key; let vkey = "project_template" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
......
...@@ -19,13 +19,21 @@ ...@@ -19,13 +19,21 @@
}}</Filed> }}</Filed>
<Filed :span="12" :name="l('deleterUserId')">{{ <Filed :span="12" :name="l('deleterUserId')">{{
entity.deleterUserId entity.deleterUserId
}}</Filed> --> }}</Filed>
<Filed :span="12" :name="l('title')">{{ entity.title }}</Filed> <Filed :span="12" :name="l('template')">{{ entity.template }}</Filed>
<Filed :span="12" :name="l('template')">{{ entity.template }}</Filed>
<Filed :span="12" :name="l('attachment')">{{ entity.attachment }}</Filed> <Filed :span="12" :name="l('attachment')">{{ entity.attachment }}</Filed>
<Filed :span="12" :name="l('type')">{{ entity.type }}</Filed> <Filed :span="12" :name="l('type')">{{ entity.type }}</Filed>-->
<Filed :span="8" :name="l('title')">{{ entity.title }}</Filed>
<Filed :span="8" :name="l('creationTime')">{{
entity.creationTime
}}</Filed>
<Filed :span="8" :name="l('creatorUserId')">{{
entity.creatorUserId
}}</Filed>
<Filed :span="24" :name="l('note')">{{ entity.note }}</Filed> <Filed :span="24" :name="l('note')">{{ entity.note }}</Filed>
</Row> </Row>
<EditGrid :columns="columns" ref="grid" :items="list" :level="8" >
</EditGrid>
</div> </div>
</template> </template>
<script> <script>
...@@ -39,20 +47,130 @@ export default { ...@@ -39,20 +47,130 @@ export default {
name: [{ required: true, message: "必填", trigger: "blur" }], name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }], code: [{ required: true, message: "必填", trigger: "blur" }],
}, },
exportTl: "项目目录",
list: [],
columns: [
{
key: "upId",
width: 50,
type: "selection",
align: "center",
},
{
key: "title",
title: this.l("title"),
align: "left",
tree: true,
easy: true,
high: true,
export: true,
},
{
key: "type",
width: 90,
title: this.l("type"),
align: "center",
high: true,
code: "mes.project_plan.Type",
attr: {
type: "icon",
},
export: true,
},
{
key: "direction",
title: this.l("direction"),
align: "center",
// code: "mes.project_plan.direction",
width: 80,
easy: true,
high: true,
export: true,
},
{
key: "status",
title: this.l("status"),
align: "center",
width: 80,
high: true,
// code: "mes.project_plan.Status",
export: true,
},
{
key: "startDate",
title: "计划开始日期",
hide: true,
export: true,
},
{
key: "endDate",
title: "计划结束日期",
hide: true,
export: true,
},
{
key: "dateRange",
width: 250,
title: "计划日期",
align: "center",
render(h, param) {
return h("DateRange", {
attrs: {
value: param.row,
},
});
},
},
{
key: "executor",
title: this.l("executor"),
align: "left",
high: true,
type: "users",
export: true,
},
{
key: "deliverable",
title: this.l("deliverable"),
// code: "mes.project_plan.deliverable",
width: 80,
align: "center",
easy: true,
high: true,
export: true,
},
],
}; };
}, },
props: { props: {
eid: String, eid: String,
}, },
mounted() { mounted() {
if (this.eid ) { if (this.eid) {
this.load(this.eid); this.load(this.eid);
} }
}, },
async fetch({ store, params }) {
// await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: { methods: {
load(v) { load(v) {
console.log(this.$store.state.dictionary)
Api.get({ id: v }).then((r) => { Api.get({ id: v }).then((r) => {
this.entity = r.result; this.entity = r.result;
console.log(JSON.parse(this.entity.template));
var data = this.$u.toTree(
JSON.parse(this.entity.template),
null,
(u) => {
// console.log(u);
// u.expanded = true;
// u.selected = false;
// u.checked = false;
},
"upId"
);
this.list = data;
this.$emit("on-load"); this.$emit("on-load");
}); });
}, },
...@@ -66,7 +184,7 @@ export default { ...@@ -66,7 +184,7 @@ export default {
}, },
watch: { watch: {
eid(v) { eid(v) {
if (v !="") { if (v != "") {
this.load(v); this.load(v);
} }
}, },
...@@ -74,7 +192,10 @@ export default { ...@@ -74,7 +192,10 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.detail{ .detail {
width: 100%; width: 100%;
} }
.detail .ivu-row{
height: auto;
}
</style>style> </style>style>
\ No newline at end of file
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<Button type="primary" @click="add">新增</Button> <Button type="primary" @click="add">新增</Button>
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide> <Modal v-model="modal" :title="title" width="1200" footer-hide :fullscreen='fullscreen'>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" /> <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal> </Modal>
</div> </div>
...@@ -41,6 +41,7 @@ export default { ...@@ -41,6 +41,7 @@ export default {
}, },
data() { data() {
return { return {
fullscreen:false,
action: Api.index, action: Api.index,
easySearch: { easySearch: {
keys: { op: "title", value: null }, keys: { op: "title", value: null },
...@@ -180,6 +181,7 @@ export default { ...@@ -180,6 +181,7 @@ export default {
}, },
mounted() { mounted() {
console.log(this); console.log(this);
console.log("dictionary",this.$store.state.dictionary)
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
...@@ -206,6 +208,7 @@ export default { ...@@ -206,6 +208,7 @@ export default {
this.modal = true; this.modal = true;
}, },
view(id) { view(id) {
this.fullscreen=true;
this.curId = id; this.curId = id;
this.title = "详情"; this.title = "详情";
this.detail = () => import("./detail"); this.detail = () => import("./detail");
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="example_split"></div> <div class="example_split"></div>
<div class="example-code" :style="styleH"> <div class="example-code" :style="styleH">
<div :style='opacity'> <div :style='opacity'>
<pre><code class="hljs"><span class="hljs-tag"><<span class="hljs-title">template</span>></span> <pre><code class="hljs"><span class="hljs-tag"><span class="hljs-title">template</span>></span>
<span class="hljs-tag"><<span class="hljs-title">Table</span> <span class="hljs-attribute">:columns</span>=<span class="hljs-value">"columns1"</span> <span class="hljs-attribute">:data</span>=<span class="hljs-value">"data1"</span>></span><span class="hljs-tag"></<span class="hljs-title">Table</span>></span> <span class="hljs-tag"><<span class="hljs-title">Table</span> <span class="hljs-attribute">:columns</span>=<span class="hljs-value">"columns1"</span> <span class="hljs-attribute">:data</span>=<span class="hljs-value">"data1"</span>></span><span class="hljs-tag"></<span class="hljs-title">Table</span>></span>
<span class="hljs-tag"></<span class="hljs-title">template</span>></span> <span class="hljs-tag"></<span class="hljs-title">template</span>></span>
<span class="hljs-tag"><<span class="hljs-title">script</span>></span><span class="javascript"> <span class="hljs-tag"><<span class="hljs-title">script</span>></span><span class="javascript">
......
...@@ -2,210 +2,213 @@ import createVuexAlong from 'vuex-along' ...@@ -2,210 +2,213 @@ import createVuexAlong from 'vuex-along'
import Api from '@/plugins/request' import Api from '@/plugins/request'
// import Mock from 'mockjs' // import Mock from 'mockjs'
export const state = () => ({ export const state = () => ({
counter: 0, counter: 0,
dictionary: new Map(), //所有字典项 dictionary: new Map(), //所有字典项
userMap: new Map(), //所有用户缓存; userMap: new Map(), //所有用户缓存;
departmentsMap: new Map(), //部门缓存; departmentsMap: new Map(), //部门缓存;
userInfo: { userInfo: {
userId: 0, userId: 0,
userName: "" userName: ""
}, },
messages:[], messages: [],
departments:{},//部门列表 departments: {}, //部门列表
cart: [], cart: [],
collect:[],//用户收藏 collect: [], //用户收藏
count: 0, count: 0,
countAps: 0, //aps排产 countAps: 0, //aps排产
countAi: 0, //智能排产 countAi: 0, //智能排产
countAll: 0, //整机排产 countAll: 0, //整机排产
countRun: 0, //流水排产 countRun: 0, //流水排产
}) })
export const getters = { export const getters = {
dictionaryByKey: (state) => (key) => { dictionaryByKey: (state) => (key) => {
let result = []; let result = [];
let items = state.dictionary.get(key); if (state && state.dictionary) {
if (items) { let items = state.dictionary.get(key);
// console.info("items",items) if (items) {
return items; // console.info("items",items)
} return items;
return result; }
}, }
dictionaryByCode: (state) => (key,code) => {
let result = null; return result;
let items = state.dictionary.get(key); },
if (items) { dictionaryByCode: (state) => (key, code) => {
// console.info("items",items) let result = null;
return items.filter(u=>{ let items = state.dictionary.get(key);
return u.code==code if (items) {
})[0]; // console.info("items",items)
} return items.filter(u => {
return result; return u.code == code
}, })[0];
getUser: (state) => key => { }
// debugger return result;
if (state.userMap && state.userMap.get) { },
return state.userMap.get(key); getUser: (state) => key => {
} // debugger
}, if (state.userMap && state.userMap.get) {
getDepartment: (state) => (key) => { return state.userMap.get(key);
let items = state.departmentsMap.get(key); }
if (items) { },
return items; getDepartment: (state) => (key) => {
} let items = state.departmentsMap.get(key);
}, if (items) {
return items;
}
},
} }
export const mutations = { export const mutations = {
increment(state) { increment(state) {
state.counter++ state.counter++
}, },
setUserInfo(state, userInfo) { setUserInfo(state, userInfo) {
state.userInfo = userInfo; state.userInfo = userInfo;
// sessionStorage.setItem("userInfo", JSON.stringify(userInfo)); // sessionStorage.setItem("userInfo", JSON.stringify(userInfo));
// sessionStorage.setItem("token", userInfo.token); // sessionStorage.setItem("token", userInfo.token);
}, },
setUsers(state, users) { setUsers(state, users) {
state.userMap = users; state.userMap = users;
}, },
addUser(state, user) { addUser(state, user) {
state.userMap.push(user); state.userMap.push(user);
}, },
setCollect(state, collectData) { setCollect(state, collectData) {
state.collect = collectData; state.collect = collectData;
}, },
setDictionary(state, dictionary) { setDictionary(state, dictionary) {
state.dictionary = dictionary; state.dictionary = dictionary;
}, },
setCart(state, cart) { setCart(state, cart) {
state.cart = cart; state.cart = cart;
}, },
setCartCount(state, count) { setCartCount(state, count) {
state.count = count; state.count = count;
}, },
setCountAps(state, count) { //设置aps排产数量 setCountAps(state, count) { //设置aps排产数量
state.countAps = count; state.countAps = count;
}, },
setCountAi(state, count) { //设置智能排产数量 setCountAi(state, count) { //设置智能排产数量
state.countAi = count; state.countAi = count;
}, },
setCountAll(state, count) { //设置整机排产数量 setCountAll(state, count) { //设置整机排产数量
state.countAll = count; state.countAll = count;
}, },
setCountRun(state, count) { //设置流水排产数量 setCountRun(state, count) { //设置流水排产数量
state.countRun = count; state.countRun = count;
}, },
setDepartments(state,departmentsMap) setDepartments(state, departmentsMap) {
{ state.departmentsMap = departmentsMap;
state.departmentsMap = departmentsMap; },
}, setMessages(state, list) {
setMessages(state,list){ state.messages = list;
state.messages=list; }
}
} }
export const actions = { export const actions = {
async loadMessages({commit}){ async loadMessages({ commit }) {
let { let {
result result
} = await Api.get(`${systemUrl}/usermessage/getusermesssage`, { } = await Api.get(`${systemUrl}/usermessage/getusermesssage`, {
status: 0,userId:this.state.userInfo.userId status: 0,
}); userId: this.state.userInfo.userId
// console.warn("getusermesssage---", result) });
commit("setMessages", result); // console.warn("getusermesssage---", result)
// let data=Mock.mock({ commit("setMessages", result);
// "result|1-30":[{ // let data=Mock.mock({
// id:"@guid", // "result|1-30":[{
// title:"@csentence", // id:"@guid",
// content:"@cparagraph(2,8)", // title:"@csentence",
// read:"@boolean", // content:"@cparagraph(2,8)",
// time:"@datetime" // read:"@boolean",
// }] // time:"@datetime"
// }) // }]
// commit("setMessages", data.result); // })
}, // commit("setMessages", data.result);
async collectList({ },
commit async collectList({
}) { commit
}) {
let { let {
result result
} = await Api.post(`${systemUrl}/favorite/listbyuser`); } = await Api.post(`${systemUrl}/favorite/listbyuser`);
// console.warn("result---", result) // console.warn("result---", result)
commit("setCollect", result); commit("setCollect", result);
}, },
async loadUser({ async loadUser({
commit commit
}, key) { }, key) {
let { let {
result result
} = await Api.get(`${systemUrl}/user/getuser`, { } = await Api.get(`${systemUrl}/user/getuser`, {
id: key id: key
}); });
// console.warn("result", result) // console.warn("result", result)
commit("addUser", result); commit("addUser", result);
}, },
async loadUsers({ async loadUsers({
commit commit
}) { }) {
let { let {
result result
} = await Api.get(`${systemUrl}/user/getuserlist`); } = await Api.get(`${systemUrl}/user/getuserlist`);
var map = new Map(); var map = new Map();
result.map(u => { result.map(u => {
map.set(u.id, u); map.set(u.id, u);
}); });
commit("setUsers", map) commit("setUsers", map)
}, },
async loadDictionary({ async loadDictionary({
commit commit
}) { }) {
let url = `${systemUrl}/Dictionary/GetAll` let url = `${systemUrl}/Dictionary/GetAll`
let { let {
result result
} = await Api.get(url); } = await Api.get(url);
var map = new Map(); var map = new Map();
for (const key in result) { for (const key in result) {
if (result.hasOwnProperty(key)) { if (result.hasOwnProperty(key)) {
map.set(key, result[key]) map.set(key, result[key])
} }
} }
commit("setDictionary", map); commit("setDictionary", map);
let r = await Api.get(`${systemUrl}/user/getuserlist`); let r = await Api.get(`${systemUrl}/user/getuserlist`);
var umap = new Map(); var umap = new Map();
r.result.map(u => { r.result.map(u => {
umap.set(u.id, u); umap.set(u.id, u);
}); });
commit("setUsers", umap); commit("setUsers", umap);
}, },
async loadDepartments({ async loadDepartments({
commit commit
}) { }) {
let rdep = await Api.get(`${systemUrl}/department/getplantdepartments`); let rdep = await Api.get(`${systemUrl}/department/getplantdepartments`);
var mapDep = new Map(); var mapDep = new Map();
rdep.result.items.map(u => { rdep.result.items.map(u => {
mapDep.set(u.id, u); mapDep.set(u.id, u);
}); });
commit("setDepartments", mapDep); commit("setDepartments", mapDep);
}, },
} }
export const plugins = [ export const plugins = [
createVuexAlong({ createVuexAlong({
// 设置保存的集合名字,避免同站点下的多项目数据冲突 // 设置保存的集合名字,避免同站点下的多项目数据冲突
name: "hyhmes", name: "hyhmes",
local: { local: {
list: ["hyhmes"], list: ["hyhmes"],
// 过滤模块 ma 数据, 将其他的存入 localStorage // 过滤模块 ma 数据, 将其他的存入 localStorage
isFilter: true, isFilter: true,
}, },
session: { session: {
// 保存模块 ma 中的 a1 到 sessionStorage // 保存模块 ma 中的 a1 到 sessionStorage
list: ["hyhmes.session"], list: ["hyhmes.session"],
}, },
}), }),
] ]
//设置 strict 为不严格模式,即可在actions中修改state //设置 strict 为不严格模式,即可在actions中修改state
export const strict = false; export const strict = false;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment