| | |
| | | onChange: onPageChange, |
| | | onShowSizeChange: onSizeChange, |
| | | }" |
| | | :rowClassName="rowClassFn" |
| | | > |
| | | <template slot="dataIndex" slot-scope="{ index }"> |
| | | {{ index + 1 }} |
| | |
| | | >新增</a-button |
| | | > |
| | | <a-button type="primary" @click="prodDiff">产品比较</a-button> |
| | | <a-button type="primary" @click="ownerDownloadLog" |
| | | >我的锁定记录</a-button |
| | | > |
| | | </a-space> |
| | | </template> |
| | | <template slot="enabled" slot-scope="{ record }"> |
| | | {{ record.enabled == -1 ? "是" : "否" }} |
| | | </template> |
| | | <template slot="enabled1" slot-scope="{ record }"> |
| | | {{ record.enabled == 1 ? "可用" : "不可用" }} |
| | | </template> |
| | | <template slot="isNormal" slot-scope="{ record }"> |
| | | {{ record.customCode == "" ? "是" : "否" }} |
| | |
| | | <a-space class="btn-grp" direction="vertical" slot="content"> |
| | | <!-- TODO --> |
| | | <a-button |
| | | v-if="isTester && record.enabled == -1" |
| | | v-if="isTester && record.enabled != 1" |
| | | type="primary" |
| | | @click="unLock(record)" |
| | | >解锁</a-button |
| | |
| | | >下载日志</a-button |
| | | > |
| | | <a-button |
| | | :disabled="record.version == -1" |
| | | :disabled="record.version != 1" |
| | | type="primary" |
| | | @click="edit(record)" |
| | | >编辑</a-button |
| | |
| | | <a-button |
| | | type="primary" |
| | | v-if="canFeedback" |
| | | :disabled="record.version == -1" |
| | | @click="showFeedback(record)" |
| | | >反馈</a-button |
| | | > |
| | | <a-button |
| | | type="primary" |
| | | v-if="record.ecrList.length > 0" |
| | | @click="showEcrlist(record)" |
| | | >ecr记录</a-button |
| | | <a-badge |
| | | :count="record.ecrList.length" |
| | | showZero |
| | | :number-style="{ |
| | | backgroundColor: record.ecrList.length > 0 ? '#090' : '#900', |
| | | }" |
| | | > |
| | | <a-button |
| | | type="primary" |
| | | @click="showEcrlist(record)" |
| | | >ecr记录</a-button |
| | | > |
| | | </a-badge> |
| | | </a-space> |
| | | <a>更多</a> |
| | | </a-popover> |
| | |
| | | <div> |
| | | <span class="user">{{ item.owner }}</span> 在 |
| | | <span class="time">{{ item.createTime }}</span> |
| | | {{ item.lockFlag ? "锁定" : "激活" }}了版本 |
| | | {{ |
| | | { "-1": "上传", "0": "激活", "1": "锁定" }[item.lockFlag] |
| | | }}了版本 |
| | | <span class="version">{{ item.versionTime }}</span> |
| | | </div> |
| | | <div>操作原因: {{ item.reason ? item.reason : "无" }}</div> |
| | |
| | | :type="12" |
| | | :oprate-info="oprateInfo" |
| | | ></download-logs> |
| | | <a-modal |
| | | :visible="ownerLogVisible" |
| | | title="我的下载记录" |
| | | width="100%" |
| | | :destroyOnClose="true" |
| | | @cancel="ownerLogClose" |
| | | wrapClassName="full-modal" |
| | | > |
| | | <owner-download></owner-download> |
| | | <template v-slot:footer> |
| | | <a-button @click="ownerLogClose">关闭</a-button> |
| | | </template> |
| | | </a-modal> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import createWs from "@/assets/js/websocket"; |
| | | import DiffList from "@/pages/components/diffList"; |
| | | import FeedbackForm from "../components/feedbackForm.vue"; |
| | | import OwnerDownload from "../components/ownerDownload"; |
| | | const WSMixin = createWs("product"); |
| | | |
| | | export default { |
| | |
| | | }, |
| | | ]; |
| | | return { |
| | | ownerLogVisible: false, |
| | | reason: "", |
| | | reasonVisible: false, |
| | | oprateInfo: "", |
| | |
| | | width: 100, |
| | | scopedSlots: { customRender: "enabled" }, |
| | | }, |
| | | { |
| | | title: "是否可用", |
| | | dataIndex: "enabled1", |
| | | dataType: "boolean", |
| | | align: "center", |
| | | searchAble: false, |
| | | width: 100, |
| | | scopedSlots: { customRender: "enabled1" }, |
| | | }, |
| | | // { |
| | | // title: "创建时间", |
| | | // dataIndex: "createTime", |
| | |
| | | FeedbackForm, |
| | | DownloadReason, |
| | | DownloadLogs, |
| | | OwnerDownload, |
| | | }, |
| | | methods: { |
| | | rowClassFn(record) { |
| | | let classList = []; |
| | | if (record.enabled == -1) { |
| | | classList.push("locked"); |
| | | } |
| | | if (record.enabled == 0) { |
| | | classList.push("unable"); |
| | | } |
| | | return classList; |
| | | }, |
| | | unLock(obj) { |
| | | this.curObj = obj; |
| | | this.reasonVisible = true; |
| | |
| | | }, |
| | | handleEmailShow(record, get) { |
| | | let title = |
| | | "[产品发布记录]" + record.parentName + " 版本:" + record.versionTime; |
| | | "[产品发布记录]" + record.parentModel + " 版本:" + record.versionTime; |
| | | let content = []; |
| | | content.push("物料编码: " + record.parentCode); |
| | | content.push("物料名称: " + record.parentName); |
| | | content.push("规格型号: " + record.parentModel); |
| | | content.push("标准机型: " + (record.customCode ? "是" : "否")); |
| | | content.push("标准机型: " + (!record.customCode ? "是" : "否")); |
| | | content.push("定制单号: " + (record.customCode || "无")); |
| | | content.push("版本时间: " + record.versionTime); |
| | | if (get) { |
| | |
| | | } |
| | | }, |
| | | edit(obj) { |
| | | console.log(obj, 99); |
| | | // console.log(obj, 99); |
| | | this.editObj = obj; |
| | | this.editShow = true; |
| | | }, |
| | |
| | | } |
| | | const { pageCurr, pageSize, conditions, columns } = this; |
| | | let params = {}; |
| | | let col, index; |
| | | Object.keys(conditions).forEach((v) => { |
| | | switch (v) { |
| | | case "isNormal": |
| | | if (conditions[v]) { |
| | | params["customCode"] = ""; |
| | | columns.forEach((val) => { |
| | | columns.forEach((val, idx) => { |
| | | if (val.dataIndex == "customCode") { |
| | | val.search.value = ""; |
| | | col = { ...val, search: { value: "", backup: "" } }; |
| | | index = idx; |
| | | } |
| | | }); |
| | | this.$set(this.columns, index, col); |
| | | } |
| | | break; |
| | | case "customCode": |
| | |
| | | parentName, |
| | | }; |
| | | addProduct(param).then((res) => { |
| | | const { code, msg } = res.data; |
| | | const { code, data, msg } = res.data; |
| | | this.$layer.close(loading); |
| | | if (code) { |
| | | if (code && data) { |
| | | this.$message.success(msg); |
| | | this.prodUploadShow = false; |
| | | } else { |
| | |
| | | return reg.test(txt); |
| | | }, |
| | | viewLog(obj) { |
| | | console.log(obj); |
| | | // console.log(obj); |
| | | const { parentCode, customCode } = obj; |
| | | getLogList({ parentCode, customCode }).then((res) => { |
| | | const { code, data } = res.data; |
| | |
| | | let { code, data, data2 } = res.data; |
| | | let list = []; |
| | | if (code && data) { |
| | | console.log(data); |
| | | // console.log(data); |
| | | list = data2.map((v) => v.name); |
| | | } |
| | | this.tester = list; |
| | |
| | | let { customCode, parentCode } = record; |
| | | this.oprateInfo = parentCode + "_" + customCode; |
| | | this.downloadlogVisible = true; |
| | | }, |
| | | ownerDownloadLog() { |
| | | this.ownerLogVisible = true; |
| | | }, |
| | | ownerLogClose() { |
| | | this.ownerLogVisible = false; |
| | | }, |
| | | }, |
| | | watch: { |
| | |
| | | .btn-grp .ant-btn { |
| | | min-width: 6.4em; |
| | | } |
| | | /deep/.locked > td { |
| | | background: #fec54b; |
| | | } |
| | | /deep/.locked.locked.locked.ant-table-row-hover > td, |
| | | /deep/.locked.locked.locked:hover > td { |
| | | background: #fcd583; |
| | | } |
| | | /deep/.unable > td { |
| | | background: #f0637b; |
| | | } |
| | | /deep/.unable.unable.unable.ant-table-row-hover > td, |
| | | /deep/.unable.unable.unable:hover > td { |
| | | background: #ff869a; |
| | | } |
| | | </style> |
| | | |
| | | <style lang="less"> |
| | | .full-modal { |
| | | height: 100%; |
| | | .ant-modal { |
| | | max-width: 100%; |
| | | height: 100%; |
| | | top: 0; |
| | | padding-bottom: 0; |
| | | margin: 0; |
| | | } |
| | | .ant-modal-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | // height: calc(100vh); |
| | | } |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | } |
| | | } |
| | | </style> |