获取进程列表
This commit is contained in:
parent
4fa5e7e34d
commit
3000dc13fc
2
app/wails/frontend/components.d.ts
vendored
2
app/wails/frontend/components.d.ts
vendored
@ -11,8 +11,6 @@ declare module 'vue' {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
|
@ -92,11 +92,6 @@ const generateData = (
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
const table = reactive({
|
||||
columns: generateColumns(10),
|
||||
data: generateData(generateColumns(10),20)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -114,11 +109,8 @@ const table = reactive({
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<div class="result w-full text-center" id="result">Please enter your name below 👇</div>
|
||||
<div class="input-box w-full text-center" id="input">
|
||||
<el-input v-model="controller.input" type="text" autocomplete="off"></el-input>
|
||||
<el-button class="btn" @click="sendNotify()">通知</el-button>
|
||||
</div>
|
||||
|
||||
<el-button class="btn" @click="sendNotify()">通知</el-button>
|
||||
<el-button @click="getAllEnv()">获取所有环境变量</el-button>
|
||||
|
||||
<div>
|
||||
@ -127,15 +119,6 @@ const table = reactive({
|
||||
</div>
|
||||
|
||||
<el-button @click="switchLocale()">切换 locale</el-button>
|
||||
<div style="height: 50vh">
|
||||
<el-auto-resizer>
|
||||
<template #default="{ height, width}">
|
||||
<el-table-v2 mb-1 :height="height" :width="width" :data="table.data" :columns="table.columns" fixed/>
|
||||
</template>
|
||||
</el-auto-resizer>
|
||||
</div>
|
||||
|
||||
<el-pagination :total="100" />
|
||||
|
||||
<el-button @click="addTab()">添加tab</el-button>
|
||||
<el-button @click="router.push('/environment')">环境变量</el-button>
|
||||
|
@ -319,3 +319,47 @@ export namespace process {
|
||||
|
||||
}
|
||||
|
||||
export namespace system {
|
||||
|
||||
|
||||
export class ProcessDTO {
|
||||
pid: number;
|
||||
name: string;
|
||||
parent?: process.Process;
|
||||
status: string;
|
||||
createTime: number;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new ProcessDTO(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pid = source["pid"];
|
||||
this.name = source["name"];
|
||||
this.parent = this.convertValues(source["parent"], process.Process);
|
||||
this.status = source["status"];
|
||||
this.createTime = source["createTime"];
|
||||
}
|
||||
|
||||
convertValues(a: any, classs: any, asMap: boolean = false): any {
|
||||
if (!a) {
|
||||
return a;
|
||||
}
|
||||
if (a.slice) {
|
||||
return (a as any[]).map(elem => this.convertValues(elem, classs));
|
||||
} else if ("object" === typeof a) {
|
||||
if (asMap) {
|
||||
for (const key of Object.keys(a)) {
|
||||
a[key] = new classs(a[key]);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
return new classs(a);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,8 +4,8 @@ import {cpu} from '../models';
|
||||
import {disk} from '../models';
|
||||
import {net} from '../models';
|
||||
import {process} from '../models';
|
||||
import {mem} from '../models';
|
||||
import {system} from '../models';
|
||||
import {mem} from '../models';
|
||||
|
||||
export function GetAllProcessPid():Promise<Array<number>>;
|
||||
|
||||
@ -25,6 +25,8 @@ export function GetNetWorkConnection():Promise<Array<net.ConnectionStat>>;
|
||||
|
||||
export function GetProcessInfo(arg1:number):Promise<process.Process>;
|
||||
|
||||
export function GetProcesses():Promise<Array<system.ProcessDTO>>;
|
||||
|
||||
export function GetSwapMemory():Promise<mem.SwapMemoryStat>;
|
||||
|
||||
export function GetVirtualMemory():Promise<mem.VirtualMemoryStat>;
|
||||
|
@ -38,6 +38,10 @@ export function GetProcessInfo(arg1) {
|
||||
return window['go']['system']['InfoUtils']['GetProcessInfo'](arg1);
|
||||
}
|
||||
|
||||
export function GetProcesses() {
|
||||
return window['go']['system']['InfoUtils']['GetProcesses']();
|
||||
}
|
||||
|
||||
export function GetSwapMemory() {
|
||||
return window['go']['system']['InfoUtils']['GetSwapMemory']();
|
||||
}
|
||||
|
@ -11,3 +11,33 @@ func (i *InfoUtils) GetProcessInfo(pid int32) *process.Process {
|
||||
info, _ := process.NewProcess(pid)
|
||||
return info
|
||||
}
|
||||
|
||||
type ProcessDTO struct {
|
||||
Pid int32 `json:"pid"`
|
||||
Name string `json:"name"`
|
||||
Parent *process.Process `json:"parent"`
|
||||
Status string `json:"status"`
|
||||
CreateTime int64 `json:"createTime"`
|
||||
}
|
||||
|
||||
func (i *InfoUtils) GetProcesses() []*ProcessDTO {
|
||||
info, _ := process.Processes()
|
||||
dto := make([]*ProcessDTO, 0)
|
||||
for _, i := range info {
|
||||
d := &ProcessDTO{
|
||||
Pid: i.Pid,
|
||||
Name: "",
|
||||
Parent: nil,
|
||||
Status: "",
|
||||
CreateTime: 0,
|
||||
}
|
||||
|
||||
d.Name, _ = i.Name()
|
||||
d.Parent, _ = i.Parent()
|
||||
d.CreateTime, _ = i.CreateTime()
|
||||
d.Status, _ = i.Status()
|
||||
|
||||
dto = append(dto, d)
|
||||
}
|
||||
return dto
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user