| | |
| | | } |
| | | /** |
| | | * 追å å馿¥åè
åªè½éä¸ä¸ª |
| | | * @param {*} id |
| | | * @param {*} userId |
| | | * @param {*} username |
| | | * @returns |
| | | * @param {*} id |
| | | * @param {*} userId |
| | | * @param {*} username |
| | | * @returns |
| | | */ |
| | | export const dispatch = (id, userId, username) => { |
| | | return axios({ |
| | |
| | | |
| | | /** |
| | | * å®ç» å
³èecråæ´åå· |
| | | * @param {*} id |
| | | * @param {*} userId |
| | | * @param {*} username |
| | | * @returns |
| | | * @param {*} id |
| | | * @param {*} userId |
| | | * @param {*} username |
| | | * @returns |
| | | */ |
| | | export const updateEcrNumber = (id, ecrNumber) => { |
| | | return axios({ |
| | |
| | | id, ecrNumber |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | export const bomFeedbackListPage = (data, pageNum, pageSize)=>{ |
| | | return axios({ |
| | | method: "POST", |
| | | url: "bomFeedbak/getListPage", |
| | | data, |
| | | params: { |
| | | pageNum, |
| | | pageSize |
| | | } |
| | | }); |
| | | } |
| | |
| | | <script> |
| | | import AdvanceTable from "@/components/table/advance/AdvanceTable"; |
| | | import {mapGetters} from "vuex"; |
| | | import moment from "moment"; |
| | | import {getUserList} from "@/pages/permission/apis"; |
| | | import {bomFeedbackListPage} from "@/pages/workplace/apis"; |
| | | export default { |
| | | name: "workplaceList", |
| | | components: { |
| | | AdvanceTable, |
| | | }, |
| | | data() { |
| | | let startTime = moment().add(-30, 'day').format("YYYY-MM-DD"); |
| | | let endTime = moment().format("YYYY-MM-DD"); |
| | | const columns = [ |
| | | { |
| | | title: "产ååç§°", |
| | | dataIndex: "parentName", |
| | | align: "center", |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: "产ååå·", |
| | | dataIndex: "parentModel", |
| | | align: "center", |
| | | width: 300 |
| | | }, |
| | | { |
| | | title: "å®å¶åå·", |
| | | dataIndex: "customCode", |
| | | align: "center", |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: "çæ¬æ¶é´", |
| | | dataIndex: "versionTime", |
| | | align: "center", |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: "å建人", |
| | | dataIndex: "senderName", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "å建æ¶é´", |
| | | dataIndex: "createTime", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "å馿¥æ¶äºº", |
| | | dataIndex: "receiverNames", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "确认人", |
| | | dataIndex: "confirmUserName", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "åå¤å
容", |
| | | dataIndex: "replyContent", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "å夿¶é´", |
| | | dataIndex: "replyTime", |
| | | align: "center", |
| | | }, |
| | | { |
| | | title: "åæ´åæµæ°´å·", |
| | | dataIndex: "ecrNumber", |
| | | align: "center", |
| | | }, |
| | | // { |
| | | // title: "æä½", |
| | | // dataIndex: "operation", |
| | | // key: "operation", |
| | | // align: "center", |
| | | // fixed: "right", |
| | | // width: 160, |
| | | // scopedSlots: { customRender: "action" }, |
| | | // }, |
| | | ]; |
| | | return { |
| | | y: 400, |
| | | update: -1, |
| | | spinning: false, |
| | | loading: false, |
| | | pageCurr: 1, |
| | | pageSize: 10, |
| | | pageSize: 20, |
| | | total: 0, |
| | | columns: [], |
| | | columns, |
| | | dataSource: [], |
| | | createTimeRange: [startTime, endTime], |
| | | userName: -1, |
| | | userList: [ |
| | | { |
| | | id: -1, |
| | | name: "ææäºº" |
| | | } |
| | | ], |
| | | state: -1, |
| | | stateList: [ |
| | | { |
| | | label: "å
¨é¨ç¶æ", |
| | | value: -1, |
| | | }, |
| | | { |
| | | label: "æªå¤ç", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "已确认", |
| | | value: 3, |
| | | }, |
| | | { |
| | | label: "å·²å®ç»", |
| | | value: 124, |
| | | } |
| | | ], |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | activeFN() { |
| | | this.resize(); |
| | | }, |
| | | async getUserList() { |
| | | try{ |
| | | let res = await getUserList(); |
| | | let rs = res.data; |
| | | if(rs.code === 1 && rs.data) { |
| | | this.userList = rs.data2; |
| | | } |
| | | this.userList.unshift({ |
| | | id: -1, |
| | | name: "ææäºº" |
| | | }); |
| | | }catch (e) { |
| | | this.userList.unshift({ |
| | | id: -1, |
| | | name: "å
¨é¨" |
| | | }); |
| | | console.log(e); |
| | | } |
| | | }, |
| | | getSearchParams() { |
| | | let startTime = moment(this.createTimeRange[0]).format("YYYY-MM-DD")+" 00:00:00"; |
| | | let endTime = moment(this.createTimeRange[1]).format("YYYY-MM-DD")+" 23:59:59"; |
| | | let confirmStatus = this.state; |
| | | let senderId = this.userName; |
| | | return { |
| | | confirmStatus, |
| | | startTime, |
| | | endTime, |
| | | senderId |
| | | }; |
| | | }, |
| | | rowClassFn(record) { |
| | | let classList = []; |
| | | if (record.enabled == -1) { |
| | |
| | | } |
| | | return classList; |
| | | }, |
| | | searchData() { |
| | | async searchData() { |
| | | if (-1 == this.update) { |
| | | this.update = Math.random(); |
| | | } |
| | | let params = this.getSearchParams(); |
| | | try { |
| | | let res = await bomFeedbackListPage(params, this.pageCurr, this.pageSize); |
| | | let rs = res.data; |
| | | let list = []; |
| | | let total = 0; |
| | | if(rs.code === 1) { |
| | | list = rs.data.list; |
| | | total = rs.data.total; |
| | | } |
| | | this.dataSource = list; |
| | | this.total = total; |
| | | }catch (e) { |
| | | this.dataSource = []; |
| | | this.total = 0; |
| | | console.log(e); |
| | | } |
| | | |
| | | }, |
| | | onSearch(conditions, searchOptions) { |
| | | this.pageCurr = 1; |
| | |
| | | ...mapGetters("setting", ["affixed"]), |
| | | }, |
| | | mounted() { |
| | | this.getUserList(); |
| | | this.searchData(); |
| | | window.addEventListener("resize", this.resize); |
| | | }, |
| | |
| | | onChange: onPageChange, |
| | | onShowSizeChange: onSizeChange, |
| | | }" |
| | | :rowClassName="rowClassFn"></advance-table> |
| | | :rowClassName="rowClassFn"> |
| | | <template slot="title"> |
| | | <a-space class="operator"> |
| | | <span class="title">é®é¢å馿»è¡¨</span> |
| | | <div class="filter-container"> |
| | | <div class="filter-item"> |
| | | <span class="filter-label">å建人ï¼</span> |
| | | <div class="filter-content"> |
| | | <a-select style="width: 180px" v-model="userName" @change="searchData"> |
| | | <a-select-option |
| | | v-for="(item, key) in userList" :key="'key'+key" |
| | | :value="item.id">{{item.name}}</a-select-option> |
| | | </a-select> |
| | | </div> |
| | | </div> |
| | | <div class="filter-item"> |
| | | <span class="filter-label">å建æ¶é´ï¼</span> |
| | | <div class="filter-content"> |
| | | <a-range-picker v-model="createTimeRange" @change="searchData"/> |
| | | </div> |
| | | </div> |
| | | <div class="filter-item"> |
| | | <span class="filter-label">é®é¢åé¦ç¶æï¼</span> |
| | | <div class="filter-content"> |
| | | <a-select style="width: 180px" v-model="state" @change="searchData"> |
| | | <a-select-option |
| | | v-for="(item, key) in stateList" :key="'key'+key" |
| | | :value="item.value">{{item.label}}</a-select-option> |
| | | </a-select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </a-space> |
| | | </template> |
| | | </advance-table> |
| | | </a-card> |
| | | </a-spin> |
| | | </div> |
| | |
| | | bottom: 0; |
| | | } |
| | | } |
| | | .filter-container { |
| | | font-size: 14px; |
| | | font-weight: normal; |
| | | margin-left: 16px; |
| | | .filter-item { |
| | | display: inline-block; |
| | | margin-right: 16px; |
| | | .filter-content { |
| | | display: inline-block; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | { |
| | | path: 'workplaceList', |
| | | name: 'å®¡æ¹æµæ¥è¯¢', |
| | | name: 'é®é¢å馿¥è¯¢', |
| | | meta: { |
| | | icon: "profile" |
| | | }, |
| | |
| | | #### ä¸ãå馿µç¨å¾ |
| | | <p> |
| | | <img src="./src/assets/version/img/å馿µç¨å¾.png"/> |
| | | <img src="./src/assets/version/img/å馿µç¨å¾.png" alt=""/> |
| | | </p> |